R data.table滚动连接与滚动列的奇怪行为

时间:2016-12-03 15:31:35

标签: r data.table

考虑以下滚动连接:

require(data.table)

dtx = data.table(name.x = c("a", "a", "b", "b"), time.x = c(2, 4, 6, 8), info.x = c(2, 4, 6, 8))
dti = data.table(name.i = c("a", "a", "b", "b"), time.i = c(1, 3, 5, 7), info.i = c(1, 3, 5, 7))

dtz = dtx[dti, list(name.i = name.i, name.x = name.x, time.i = time.i, time.x = time.x, info.i = info.i, info.x = info.x),
    on = c(name.x = "name.i", time.x = "time.i"), roll = -1]
print(dtz)
#   name.i name.x time.i time.x info.i info.x
#1:      a      a      1      1      1      2
#2:      a      a      3      3      3      4
#3:      b      b      5      5      5      6
#4:      b      b      7      7      7      8

除time.x列外,所有列都有意义。我原以为它包含值2,4,6,8。事实上,在dtx中甚至不存在值1,3,5,7。

显然time.x已被time.i替换,并且已经以某种方式完成,以便将NOCB(下一个观察结果)逻辑表示为常规连接。

我只是想知道这是否是预期的行为,我们将失去time.x列?因为卷的文档中没有提到它,并且打破了卷和常规连接之间的一致性。

(我使用data.table 1.9.6 btw)

0 个答案:

没有答案