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,则其值为“高”;否则它将具有值“ Normal”。
感谢您的帮助
如果您按照本文末尾所示的字符形式读取数据,您的尝试将起作用。
或者,您也可以这样做
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
数据
用stringsAsFactors = FALSE
读取数据。
data <- data.frame(weight,height,age,names,sex, stringsAsFactors = FALSE)