在观察级别获取每组的最新值

时间:2015-12-29 12:23:50

标签: r group-by dplyr plyr

希望我能解释一下,这是一种易于理解的方式。我想在观察级别获得最近日期特定产品的价格。这应该加班加点。例如,我的日期是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中执行此操作的任何建议?

1 个答案:

答案 0 :(得分:2)

这可以使用dplyr函数的组合来实现,如下所示

df %>% 
  group_by(group) %>% 
  arrange(dates)  %>% 
  mutate(answer = lag(price, 1))