检索列而无需明确提及

时间:2019-07-03 08:55:17

标签: r data.table left-join

大家早上好

data.table中,我发现在左连接的情况下,隐式提及列名时,即不提及表(该列所在的表),尽管列名是唯一的,也会导致意外的结果。

虚拟数据

x <- data.table(a = 1:2); x
#    a
# 1: 1
# 2: 2
y <- data.table(c = 1
                ,d = 2); y 
#    c d
# 1: 1 2

在检索列c时不提及表名的左联接

z <- y[x, on=.(c=a), .(a,c,d)];  z
#    a c  d
# 1: 1 1  2
# 2: 2 2 NA

查看以上结果时出现问题。 c列的第2行应为NA。但是,它显示2 仅当用户明确提及该表时,此问题才能纠正:

z <- y[x, on=.(c=a), .(a,x.c,d)];  z
#    a x.c  d
# 1: 1   1  2
# 2: 2  NA NA

也许值得一提的是x中的x.c是指语法x[i]的位置,在这种情况下,表y

我的问题是,为什么对于看似基本的任务必须要明确提及表格。还是我错过了什么?谢谢。

0 个答案:

没有答案