【问题标题】:Is it possible to merge mutiple data frames in R into one data where key is same for all the columns [duplicate]是否可以将R中的多个数据框合并为一个数据,其中所有列的键都相同[重复]
【发布时间】:2018-10-18 17:13:45
【问题描述】:

我一直在尝试将多个 data.table 合并到一个数据表中。 所有数据表都有相同的键。

s1.dt、s2.dt 和 s3.dt 是三个数据表,共有 o 和 d 列。

目前,我对三个数据表分别做,但在整个数据集中,总共有100个这样的数据表。 所以我想知道是否有 R 函数可以做同样的事情来避免繁琐的重复代码?

这是我的代码:

s1.dt= data.table(s1, key = c("o","d"))

s2.dt= data.table(s2, key = c("o","d"))

s3.dt= data.table(s3, key = c("o","d"))

system.time(s12.dt<-merge(s1.dt,s2.dt,all = T, allow.cartesian = T ))

system.time(s123.dt<-merge(s12.dt,s3.dt,all = T, allow.cartesian = T ))

【问题讨论】:

标签: r merge data.table


【解决方案1】:

我们将数据集保存在 list 中,并使用 Reducemerge 全部

Reduce(function(...) merge(..., all = TRUE, allow.cartesian = TRUE), 
                  list(s1.dt, s2.dt, s3.dt))

如果有很多数据集,不要输入对象名称来创建列表,而是使用pastelsmget

mget(ls(pattern = "^s\\d+\\.dt$"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 2020-01-10
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2019-02-06
    相关资源
    最近更新 更多