0
我想找到基於另一個表data.table聯接滾滾向前ONCE
library(data.table)
price = data.table(date = as.IDate(c("2000-01-01", "2000-02-01","2000-03-01","2000-04-01")), close = c(101,102,103,104))
meetings = data.table(date = as.IDate(c("2000-01-02", "2000-02-02")), rateDecision=c("rise","keep"))
price
# date close
# 1: 2000-01-01 101
# 2: 2000-02-01 102
# 3: 2000-03-01 103
# 4: 2000-04-01 104
meetings
# date rateDecision
# 1: 2000-01-02 rise
# 2: 2000-02-02 keep
所需的輸出是速度之後去尋找下一個價格列在一個表中的下一個和唯一的下一個有效點會議。那就是
date rateDecision close
1: 2000-01-01 NA 101
2: 2000-02-01 rise 102
3: 2000-03-01 keep 103
4: 2000-04-01 NA 104
注意行2000-04-01中的NA
。滾動連接不起作用。指定roll=30
將適用於這種情況,但通常情況下日期間隔不均勻。
meetings[price, on = "date", roll=TRUE]
# date rateDecision close
# 1: 2000-01-01 NA 101
# 2: 2000-02-01 rise 102
# 3: 2000-03-01 keep 103
# 4: 2000-04-01 keep 104
謝謝!這也解決了我的滾動連接的補充問題,但不包括匹配行,即將'.I [-1L]'更改爲'.I [1L]' – jf328