【问题标题】:R data.table join with rollR data.table 与滚动连接
【发布时间】:2016-08-24 11:14:19
【问题描述】:
dd = data.table(a = c(1,1), b = c(1,2), v = c(1, NA))
dd
#    a b  v
# 1: 1 1  1
# 2: 1 2 NA
setkey(dd, a,b)
dd[.(1,2), roll = TRUE, rollends = c(TRUE, TRUE)]
#    a b  v
# 1: 1 2 NA

我在这里错过了什么?为什么v 不结转?

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    滚动连接不需要在此处滚动,因为您正在匹配精确的行 (1, 2)。当实际值不匹配时进行滚动匹配,在您的情况下它具有完全匹配。请参阅下面的示例,我修改了dd,因此.(1,2) 上没有匹配项。

    library(data.table)
    dd = data.table(a = c(1,1), b = c(1,3), v = c(1, NA))
    dd[.(1,2), roll = TRUE, rollends = c(TRUE, TRUE)]
    #   a b v
    #1: 1 2 1
    

    ?data.table//roll(强调我的):

    idata.table 并且它的行匹配除了最后一个x 连接列,并且它在最后一个i 连接列中的值落在一个间隙中(包括在x 中对该组的最后一次观察之后),然后:

    • +Inf(或TRUE)向前滚动x 中的现行值。它也称为最后一次观察结转 (LOCF)

    ...

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 2016-04-18
      • 2018-06-24
      • 2016-01-25
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      相关资源
      最近更新 更多