【发布时间】:2015-12-29 12:23:50
【问题描述】:
希望我可以解释这是一种易于理解的方式。我想在观察级别获得最近日期的特定产品的价格。这应该加班。例如,我的日期从 2014 年到 2015 年......随着时间的推移,“最近的价格”应该每天都在变化。
换句话说,所需的答案始终是日期小于当前观察日期的最新值。
df = data.frame(dates = c('2015-08-09','2015-08-10','2015-08-15','2015-07-31','2015-09-09','2015-09-12','2015-09-19'), group=c(rep("A",5),"B","B"), price=c(5,15,3,24,10,13,2), desired_answer = c(24,5,15,NA,3,NA,13))
关于如何在 R 中执行此操作的任何建议?
【问题讨论】:
-
如果您使用
dplyr标记此内容,您可以在此处使用lag,如df %>% arrange(as.Date(dates)) %>% group_by(group) %>% mutate(res = lag(price))。我敢肯定这个有很多骗子。