我已经提到了这个问题Insert a row in a data.table,但是,我遇到了这个错误:
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = "All") :
invalid factor level, NA generated
当我尝试插入仅包含值"All"
的新行时,如下所示:
d <- copy(as.data.frame(Orange))
d <- rbind(d, c("All", "All", "All"))
它发出警告,并将"All"
插入最后两列,并将NA
插入第一列。
我在这里做错什么,我知道这应该很简单。
答案 0 :(得分:0)
尝试将c("all", "all", "all")
更改为list("all", "all", "all")
。向量(由c()
创建)在数据帧中创建列。您可以列出列表,也可以制作要尝试的内容rbind
data.frame
(因为data.frames只是特殊列表)。
答案 1 :(得分:0)
根据this,rbind
参数必须是数据帧或可以强制转换为数据帧的对象。它无法将c("All","All","All")
强制转换为数据帧。我将改为创建一个新的数据框:d <- rbind(d, data.frame(...))
。您可能还会发生一些数据类型不匹配的情况。
答案 2 :(得分:0)
这是我可以使它正常运行的唯一方法。我认为有更好的方法可以做到这一点。
d <- copy(as.data.frame(Orange))
add <- data.frame("All", "All", "All")
names(add) <- names(d)
d <- rbind(d, add)