大致日期的比賽,我有兩個R數據幀VLOOKUP中的R
Factor = data.frame(date = c("2015-10-01", "2016-01-01", "2016-04-01",
"2016-07-01", "2016-10-01", "2017-01-01"), factor = c(0.07606455,
0.07170356, 0.07127930, 0.06807735, 0.06764824, 0.06709560))
Factor =
date factor
2015-10-01 0.07606455
2016-01-01 0.07170356
2016-04-01 0.07127930
2016-07-01 0.06807735
2016-10-01 0.06764824
2017-01-01 0.06709560
Dates = data.frame(date = c("2016-01-01", "2016-01-28", "2016-01-29",
"2016-03-01", "2016-06-02", "2016-07-03", "2016-10-04", "2016-10-05"))
Dates =
date
2016-01-01
2016-01-28
2016-01-29
2016-03-01
2016-06-02
2016-07-03
2016-10-04
2016-10-05
我找了近似匹配一個Excel類型VLOOKUP。由於日期不準確,我不能執行R merge
函數。 另外我不能像在link或使用日期分鐘差異由於我需要從因子數據幀,這是小於或等於從數據幀的日期的日期匹配因子索引如下面
apply(Dates, 1, function(x) min(which(abs(x - Factor$date) == min(abs(x - Factor$date)))))
。 我的期望輸出應該是
Output =
date factor
2016-01-01 0.07170356
2016-01-28 0.07170356
2016-01-29 0.07170356
2016-03-01 0.07170356
2016-06-02 0.07127930
2016-07-03 0.06807735
2016-10-04 0.06764824
2016-10-05 0.06764824
是否有任何有效的方式以外循環達到的效果
那麼,這就是你沒有提供可以方便地複製的數據。試試'dt1 [dt2,on =「date」,roll = -Inf]'。 –
通過'dt1 [dt2,on =「date」,roll = Inf]'得到了所需的解決方案。感謝您的迴應。 – amitbisai