【发布时间】:2017-06-29 03:55:14
【问题描述】:
我想创建一个从现有变量中的特定值派生的新变量。我的数据框如下所示:
year <- c("2010", "2011", "2012", "2013", "2014", "2015")
x <- c(2980, 2955, 3110, 2962, 2566, 3788)
y <- c(2453, 2919, 2930, 2864, 2873, 3031)
df <- data.frame(year, x, y)
更具体地说,我想创建第三列,z,即x 和y 的比率。但是,我不想通过简单地将每一年的x 除以y 来创建这个比率。相反,我希望 2015 年(和 2014 年等)的值是前三年(即 2014 年、2013 年和 2012 年)该比率的平均值。
我查看了 Wickham 的 dplyr 包,特别是 group_by 函数,但我很难过,因为我不想按年对我的数据进行分组,而是按每年的前三年分组如上图所示(希望如此)。
【问题讨论】:
-
计算原始比率,然后执行rolling average。如果您每年只有一个数据点,那么您根本不需要任何分组。
标签: r