2016-08-24 10 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)

...