2016-08-24 133 views
2
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加入卷

回答

2

由於您匹配的確切行是(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)

...