我有一个像
这样的结构的data.tablelibrary(data.table) #load package
a <- as.data.table(matrix(1,10,10))
b <- as.data.table(matrix(2,2,2))
如您所见,它们有不同的维度。 我想把这两个data.table放在一起。 结果应该是, 前十行/前十列是“a” 第11和第12行/第1和第2列是“b”
我需要这个的原因是因为我有一个数据集(a)和一个脚注(b)。 我想合并它并将其导出为xlsx文件。因此,在数据集下面是脚注。
我尝试通过rbind cbind做这个但是这要求我匹配长度,如果我这样做,“b”每次重复5次以使长度与“a”匹配。
答案 0 :(得分:2)
> y <- as.data.table(matrix(1,10,10))
> u <- as.data.table(matrix(2,2,2))
> merge(y, u, all = TRUE)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1: 1 1 1 1 1 1 1 1 1 1
2: 1 1 1 1 1 1 1 1 1 1
3: 1 1 1 1 1 1 1 1 1 1
4: 1 1 1 1 1 1 1 1 1 1
5: 1 1 1 1 1 1 1 1 1 1
6: 1 1 1 1 1 1 1 1 1 1
7: 1 1 1 1 1 1 1 1 1 1
8: 1 1 1 1 1 1 1 1 1 1
9: 1 1 1 1 1 1 1 1 1 1
10: 1 1 1 1 1 1 1 1 1 1
11: 2 2 NA NA NA NA NA NA NA NA
12: 2 2 NA NA NA NA NA NA NA NA
答案 1 :(得分:0)
使用plyr
包:
library(plyr)
l1<-list(a,b)
ldply(l1,data.table)
导致:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 1 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1
4 1 1 1 1 1 1 1 1 1 1
5 1 1 1 1 1 1 1 1 1 1
6 1 1 1 1 1 1 1 1 1 1
7 1 1 1 1 1 1 1 1 1 1
8 1 1 1 1 1 1 1 1 1 1
9 1 1 1 1 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1 1 1
11 2 2 NA NA NA NA NA NA NA NA
12 2 2 NA NA NA NA NA NA NA NA