gpt4 book ai didi

r - 将行追加到 data.table 的工作方式与 data.frame : How and why? 中的工作方式不同

转载 作者:行者123 更新时间:2023-12-02 15:05:15 25 4
gpt4 key购买 nike

为什么下面的代码不起作用?

library(data.table)
team_table <- as.data.table(matrix(NA,ncol = 11))
rbind(team_table,1:11)

与 data.frame 相同的版本可以吗?

team_table <-as.data.frame(matrix(NA,ncol = 11))
rbind(team_table,1:11)

最佳答案

转换为列表,它应该可以工作

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

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
<小时/>

关于失败的原因,data.table 中的 rbind 正在调用 rbindlist 并将向量 (1:11) 视为单列。

rbind(team_table,1:11)

Error in rbindlist(l, use.names, fill, idcol) : Item 2 has 1 columns, inconsistent with item 1 which has 11 columns. To fill missing columns use fill=TRUE.

如果我们将其转换为具有 11 个元素的 list (data.framedata.tablelist 对于列表元素,即具有相同长度的列),它可以工作,因为它会认为列数相同

关于r - 将行追加到 data.table 的工作方式与 data.frame : How and why? 中的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59850730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com