我目前正在寻找一种方法将几个表组合在一起,这些表具有相同的结构和列名。例如,我想结合这三个表:
>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中找到快速简便的解决方案。有人会有什么建议吗?谢谢!
答案 0 :(得分:3)
您已将其标记为data.table
,其功能方便rbindlist
。
您可以将其与mget
结合使用,如下所示:
library(data.table)
rbindlist(mget(ls(pattern = "dt\\d")))
mget
步骤会在工作区中创建list
个与dt1
,dt2
等命名模式匹配的对象(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