【发布时间】:2018-03-01 18:36:15
【问题描述】:
我有一个如下描述的数据集:
> dput(droplevels(head(sample,10)))
structure(list(Team = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = "Air-Force", class = "factor"), Year = c(2003L,
2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2011L, 2012L, 2013L
), Grouped_Position_3 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = "Skill", class = "factor"), Avg_Rating = c(0.7667,
0, 0.7444, 0.7222, 0, 0.7556, 0.76224, 0.596322222222222, 0.706584615384615,
0.767509090909091), n = c(1L, 1L, 3L, 6L, 1L, 1L, 5L, 9L, 13L,
11L)), .Names = c("Team", "Year", "Grouped_Position_3", "Avg_Rating",
"n"), row.names = c(NA, 10L), class = "data.frame")
在完整的数据集中,有多个学校、分组的职位和年份。我正在尝试做的是弄清楚如何使用当前年份和过去四年为每个独特的学校,年份和职位组生成滚动平均值。例如,对于 2013 年,空军和技能职位我希望进行以下计算(请注意,数据中缺少 2010 年):
(.767+.70+.59+0+.762)/5
0 来自缺失的年份。我已经结合 dplyr 查看了 zoo 库,但我无法控制这样的缺失值。我是在考虑必须编写一个循环还是 r 中有一些具有此功能的包?
【问题讨论】:
标签: r for-loop dplyr calculated-columns zoo