如何向数据帧添加行向量?

问题描述 投票:0回答:1

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”。

感谢您的帮助

r dataframe conditional-statements
1个回答
1
投票

如果您按照本文末尾所示的字符形式读取数据,您的尝试将起作用。

或者,您也可以这样做

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)
© www.soinside.com 2019 - 2024. All rights reserved.