Djp*_*ngo 6 r dataframe rbind data.table
为什么下面的代码不起作用?
library(data.table)
team_table <- as.data.table(matrix(NA,ncol = 11))
rbind(team_table,1:11)
Run Code Online (Sandbox Code Playgroud)
而同版本的data.frame呢?
team_table <-as.data.frame(matrix(NA,ncol = 11))
rbind(team_table,1:11)
Run Code Online (Sandbox Code Playgroud)
转换为list它应该可以工作
rbind(team_table,as.list(1:11))
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
#1: NA NA NA NA NA NA NA NA NA NA NA
#2: 1 2 3 4 5 6 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)
这也是相同的行为 data.frame
rbind(team_table,as.list(1:11))
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
#1 NA NA NA NA NA NA NA NA NA NA NA
#2 1 2 3 4 5 6 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)
关于它失败的原因,rbindindata.table正在调用rbindlist并将向量 (1:11) 视为单个列。
rbind(team_table,1:11)
Run Code Online (Sandbox Code Playgroud)
rbindlist(l, use.names, fill, idcol) 中的错误:第 2 项有 1 列,与第 1 项有 11 列不一致。要填充缺失的列,请使用 fill=TRUE。
如果我们将它转换为list11元(data.frame或者data.table是list用列表元素即具有相同长度列),它的作品,因为它会考虑列数是相同的