【发布时间】:2018-10-13 12:41:02
【问题描述】:
加入数据表:
X <- data.table(A = 1:4, B = c(1,1,1,1))
# A B
# 1: 1 1
# 2: 2 1
# 3: 3 1
# 4: 4 1
Y <- data.table(A = 4)
# A
# 1: 4
通过
X[Y, on = .(A == A)]
# A B
# 1: 4 1
返回预期结果。但是,我希望这条线:
X[Y, on = .(A < A)]
# A B
# 1: 4 1
# 2: 4 1
# 3: 4 1
返回
A B
1: 1 1
2: 2 1
3: 3 1
因为关键字on:
指出 x 中的哪些列应该与 i 中的哪些列以及要连接的二元运算符的类型进行连接
根据?data.table。没有明确提到加入的方式,当然也不是我猜到的。 < 究竟是如何将 x 中的列与 i 中的列连接起来的?
【问题讨论】:
-
附注:您可以将
X[Y, on = .(A == A)]简化为X[Y, on = .(A)]或X[Y, on = "A"] -
另见
?data.table关于j参数:“x的列现在可以使用前缀x.来引用,并且在加入时特别有用以引用x' s 连接列,否则它们会被i's 所掩盖”
标签: r data.table left-join