我遇到了一个问题,我正在按一个变量(组)对数据集进行分组,并希望创建一个新的输出列,该列是每个组内值列的平均值,并且添加了一个条件,即我们只希望在计算平均值时考虑给定行的值的1以内的值。
因此,如果同一行中的三行具有day={1,2,3},则第一行和第三行将仅具有包括其自身和第二行的均值,但第二行的均值包括所有三个值。
本质上,我想知道如何访问SPECIFIC ROW的day值,然后使用它来获取一组day值接近该数字的行的子集。
所以如果输入是
df <- read.table(text = "
index group day value
1 A 1 10
2 A 2 20
3 A 3 30
4 B 2 20
5 B 3 30
6 B 5 50", header = TRUE)
输出应如下所示
index group day value output
1 A 1 10 15
2 A 2 20 20
3 A 3 30 25
4 B 2 20 25
5 B 3 30 25
6 B 5 50 50
我已经尝试过按组和日期分组,但是在平均值中包含给定行的day=+-1的行似乎计算量太大,无法运行我正在使用的大型数据集。
2条答案
按热度按时间zxlwwiss1#
或者使用dplyr v1.1.0+,跳过group_by/ungroup,而是在mutate行中添加
.by = group
。结果
wlwcrazw2#
这是一个基本的R解