是否可以在r中使用带有na值的rbind

时间:2015-03-05 21:02:14

标签: r

我想问一下我创建了一个空数据帧,并使用rbind将一行数据绑定到数据帧中。这样就在空数据帧中生成了一行数据。但是如果来自rbind的数据中存在NA值,并且创建的数据帧具有双值。

df = dataframe(name=character(),day1=double(),day2=double(),day3=double(),day4=double(),...)
listdata = (2.3,1.1,NA,2,...)  #note there is just one NA here
df = rbind(df,c('',listdata))

然后,我收到了警告:

10: In `[<-.factor`(`*tmp*`, ri, value = "2") :
  invalid factor level, NA generated

即使我在创建数据框时在代码中添加了stringAsFactors=F,它仍会出现此警告。问题是什么?这是因为列表中的NA值吗?感谢。

1 个答案:

答案 0 :(得分:2)

首先,您的代码中存在很多错误,这使我们很难回答您的问题。

有两个问题:

1)像listdata = c(2.3, 1.1, NA, 2, ...)一样创建数据向量会将所有元素强制转换为同一个类。因此,它不一定非常适合您的数据框架。

2)函数data.frame自动将character个对象转换为因子。这就是您收到上述错误的原因。在stringsAsFactors=F参数中加入data.frame