【发布时间】:2019-11-04 10:25:42
【问题描述】:
我在 R 中有 2 个数据表
A <- data.table(a = 1:4, b = 12:15)
B <- data.table(a = 2:3, b = 13:14)
使用时
C<-plyr::join(A,B)
返回
a b
1: 1 12
2: 2 13
3: 3 14
4: 4 15
当我使用时
setkey(A, "a")
setkey(B, "a")
B[A]
返回
a b i.b
1: 1 NA 12
2: 2 13 13
3: 3 14 14
4: 4 NA 15
为什么两个函数的结果不同? plyr 正在对所有匹配的变量应用左连接。 Data.table 也在做同样的事情吗? 我们如何使用 'data.table' 实现 'plyr' 给出的结果?
【问题讨论】:
-
因为当你没有在joins中定义
by参数时,它会连接所有的公共列。在您的情况下,a和b。一旦你设置了一个键,你只在键的列上合并...
标签: r data.table plyr