在R中的`data.table`中,有一种快速的方法将表组合在一起吗?

时间:2014-10-02 12:28:24

标签: r data.table

我目前正在寻找一种方法将几个表组合在一起,这些表具有相同的结构和列名。例如,我想结合这三个表:

>dt1
user     number
A        32
A        33
A        35
A        23
A        32
A        44
A        33

>dt2
user     number
B        32
B        33
B        35
B        23
B        32
B        44
B        33

>dt3
user     number
C        32
C        33
C        35
C        23
C        32
C        44
C        33

并获得:

>dt_combined
user     number
A        32
A        33
A        35
A        23
A        32
A        44
A        33
B        32
B        33
B        35
B        23
B        32
B        44
B        33
C        32
C        33
C        35
C        23
C        32
C        44
C        33

我一直在尝试使用连接或合并,但就像这个问题一样简单,我似乎无法在data.table中找到快速简便的解决方案。有人会有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您已将其标记为data.table,其功能方便rbindlist

您可以将其与mget结合使用,如下所示:

library(data.table)
rbindlist(mget(ls(pattern = "dt\\d")))

mget步骤会在工作区中创建list个与dt1dt2等命名模式匹配的对象(dt + “数字”)。 rbindlist获取该列表并将其变为一个大data.table


> print(rbindlist(mget(ls(pattern = "dt\\d"))), topn = 3)
    user number
 1:    A     32
 2:    A     33
 3:    A     35
---            
19:    C     32
20:    C     44
21:    C     33