【发布时间】:2019-04-16 09:56:45
【问题描述】:
我正在尝试基于两个条件创建一个新的条件列。我想根据名称 and 找到列 A、B 和 C 的平均值,该周领先于相应行中的一周(但不包括)。让我们以乔为例。对于第 1 行,我们将在新列中没有数据。第 2 行将具有第 1 周数据的“平均值”。对于第 3 行,我们需要第 1 周和第 2 周数据的平均值。在实践中,我们可以有超过 3 周的时间,但我想简化示例。我想避免循环如果可能。
在 Excel 中使用 Averageifs() 函数很容易做到这一点,但我想使用 R 自动化/整合该过程
我的数据看起来像这样:
Name Week A B C
Joe 1 5 6 7
Joe 2 4 5 6
Joe 3 2 3 4
Tim 1 7 8 9
Tim 2 5 4 6
Tim 4 3 5 4
Bob 1 9 8 7
Bob 3 8 5 2
Bob 4 4 5 3
新数据如下所示:
Name Week A B C A_2 B_2 C_2
Joe 1 5 6 7 NA NA NA
Joe 2 4 5 6 5 6 7
Joe 3 2 3 4 4.5 5.5 6.5
Tim 1 7 8 9 NA NA NA
Tim 2 5 4 6 7 8 9
Tim 4 3 5 4 6 6 7.5
Bob 1 9 8 7 NA NA NA
Bob 3 8 5 2 9 8 7
Bob 4 4 5 3 8.5 6.5 4.5
感谢您提供的任何帮助!我是 R 的半新手,一直在努力解决这个问题
【问题讨论】:
-
How to calculate the Cumulative Average for some numbers?,例如
cumsum(x) / seq_along(x)
标签: r conditional mean calculated-columns moving-average