gpt4 book ai didi

使用新列和 data.table 进行 Rbind

转载 作者:行者123 更新时间:2023-12-04 00:35:45 28 4
gpt4 key购买 nike

我需要将许多大表添加到现有表中,因此我将 rbind 与优秀的包 data.table 一起使用。但是后来的一些表比原来的表有更多的列(需要包括在内)。 data.table 是否有 rbind.fill 的等价物?

library(data.table)

aa <- c(1,2,3)
bb <- c(2,3,4)
cc <- c(3,4,5)

dt.1 <- data.table(cbind(aa, bb))
dt.2 <- data.table(cbind(aa, bb, cc))

dt.11 <- rbind(dt.1, dt.1) # Works, but not what I need
dt.12 <- rbind(dt.1, dt.2) # What I need, doesn't work
dt.12 <- rbind.fill(dt.1, dt.2) # What I need, doesn't work either

我需要在拥有所有表之前开始 rbinding,因此无法知道将来会调用哪些新列。缺失的数据可以用 NA 填充。

最佳答案

由于v1.9.2 , data.table的rbind函数获得fill争论。来自 ?rbind.data.table文档:

If TRUE fills missing columns with NAs. By default FALSE. When TRUE, use.names has to be TRUE, and all items of the input list has to have non-null column names.



因此您可以这样做(大约在 v1.9.6 之前):
data.table::rbind(dt.1, dt.2, fill=TRUE) 
# aa bb cc
# 1: 1 2 NA
# 2: 2 3 NA
# 3: 3 4 NA
# 4: 1 2 3
# 5: 2 3 4
# 6: 3 4 5

v1.9.6 更新:

这现在可以直接工作:
rbind(dt.1, dt.2, fill=TRUE)
# aa bb cc
# 1: 1 2 NA
# 2: 2 3 NA
# 3: 3 4 NA
# 4: 1 2 3
# 5: 2 3 4
# 6: 3 4 5

关于使用新列和 data.table 进行 Rbind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014339/

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