添加到零行与添加到已经包含行data.frame
的行为不同data.frame
从?rbind
rbind 数据框方法首先删除所有零列和零行参数。(如果没有留下任何内容,则返回第一个参数和列,否则返回零列零行数据框。)然后它从第一个数据框中获取列的类,并按名称(而不是按位置)匹配列. 因子根据需要扩展其级别(按照遇到的因子的级别集的级别的顺序),当且仅当所有组件都是有序因子时,结果才是有序因子。(最后一点与 S-PLUS 不同。)老式类别(带水平的整数向量)被提升为因子。
你有很多选择——
最直接的
compData[1, ] <- c(5, 443)
更复杂
或者您可以强制c(5,433)
使用列表或 data.frame
rbind(compData,setNames(as.list(c(5,443)), names(compData)))
或者
rbind(compData,do.call(data.frame,setNames(as.list(c(5,443)), names(compData))))
但在这种情况下,你不妨这样做
do.call(data.frame,setNames(as.list(c(5,443)), names(compData)))
data.table 选项
您可以使用检查较少的data.table
函数rbindlist
,从而保留第一个 data.frame 的名称
library(data.table)
rbindlist(list(compData, as.list(c(5,443))