【问题标题】:R data.table: How can I merge a list of data.tables? [duplicate]R data.table:如何合并 data.tables 列表? [复制]
【发布时间】:2021-03-22 04:46:17
【问题描述】:

我有一长串 data.tables。我想将它们全部合并(内连接)到一个 data.table 中。

有了dplyrpurrr 我可以做到:

dt1 <- data.table(cbind(letters[1:10], 1:10))
dt2 <- data.table(cbind(letters[3:12], 3:12))
dt3 <- data.table(cbind(letters[5:15], 5:15))

dtl <- list(dt1, dt2, dt3)

library(dplyr)
library(purrr)
merged <- dtl %>% reduce(inner_join, by='V1')

如何使用 data.table 做到这一点?

【问题讨论】:

  • 仅供参考,有一个 open issuemergelist 和相关功能的建议。目前的做法是使用Reduce(...)

标签: r data.table


【解决方案1】:

我们可以使用joinon

library(data.table)
na.omit(Reduce(function(x, y) x[y, on = .(V1)], dtl))

【讨论】:

  • 谢谢。从我可以测试的数据来看,data.table 解决方案并没有比我当前的 dplyr + purrr 快上一百万倍……
  • @francoiskroll 好的,谢谢您的评论。我认为问题是关于如何在 data.table 中执行此操作
  • 哦,是的,很抱歉!我想我只是很失望,与一切 data.table 没有太大区别 :)
  • @francoiskroll 没关系。在大多数情况下,data.table 是有效的。我不知道在这种情况下会有更大的不同
猜你喜欢
  • 1970-01-01
  • 2015-09-07
  • 2021-03-24
  • 2020-01-30
  • 2017-12-13
  • 2021-07-29
  • 2013-03-06
  • 2015-11-01
  • 1970-01-01
相关资源
最近更新 更多