Как я могу добавить вектор строки во фрейм данных? - PullRequest
0 голосов
/ 20 марта 2020

1. Сначала

У меня есть следующий фрейм данных

weight <- c(74,85,58,80)    
height <- c(1.68,1.83,1.58,1.72)
age <- c(22,25,21,20)
names <- c("Peter","Joseph","Marie","Xavier")
sex <- c("Male","Male","Woman","Woman")
data <- data.frame(weight,height,age,names,sex)

Мне нужно добавить нового человека в фрейм данных: имя = "Анна", вес = 70, рост = 1,72 секс = женщина. Я установил эти значения как вектор:

Anne <- c(70,1.72,24,"Anne","Woman")

Я использовал rbind для добавления вектора Anne

data <- rbind(data,Anne)

Но я получил это предупреждение.

Warning messages:
1: In `[`<-.factor``(*tmp*, ri, value = "Ana") :
  invalid factor level, NA generated
2: In `[`<-.factor``(*tmp*, ri, value = "Mujer") :
  invalid factor level, NA generated

" Anne "и" Woman "отображаются как NA в кадре данных. Как я могу это исправить?

2. Второй

Также, как я могу добавить столбец к фрейму данных с именем HEIGHT. Где, если индивид измеряет более 1,78, он будет иметь значение «Высокий»; в противном случае он будет иметь значение «Нормальный».

ЦЕНИТЕ ВАШУ ПОМОЩЬ

1 Ответ

0 голосов
/ 20 марта 2020

Ваша попытка сработает, если вы прочитаете данные в виде символов, как показано в конце этого поста.

В качестве альтернативы, вы также можете сделать

data[nrow(data) + 1, ] <- Anne
data$HEIGHT <- ifelse(data$height > 1.78, "High", "Normal")
#Faster way would be
#data$HEIGHT <- c("Normal", "High")[(data$height > 1.78) + 1]

data
#  weight height age  names   sex HEIGHT
#1     74   1.68  22  Peter  Male Normal
#2     85   1.83  25 Joseph  Male   High
#3     58   1.58  21  Marie Woman Normal
#4     80   1.72  20 Xavier Woman Normal
#5     70   1.72  24   Anne Woman Normal

data

Считайте данные с помощью stringsAsFactors = FALSE.

data <- data.frame(weight,height,age,names,sex, stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...