我想问一下我创建了一个空数据帧,并使用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值吗?感谢。
答案 0 :(得分:2)
首先,您的代码中存在很多错误,这使我们很难回答您的问题。
有两个问题:
1)像listdata = c(2.3, 1.1, NA, 2, ...)
一样创建数据向量会将所有元素强制转换为同一个类。因此,它不一定非常适合您的数据框架。
2)函数data.frame
自动将character
个对象转换为因子。这就是您收到上述错误的原因。在stringsAsFactors=F
参数中加入data.frame