我有一个像这样的数据框:
df = data.frame(
x = 1:100,
y = rep(1:10, times = 10, each = 10)
) %>%
group_by(y)
我想计算每组 y
从第 3 行到第 6 行的 x
之和。
我认为这应该很容易,但我现在无法弄清楚。
在伪代码中我想象这样的事情:
df %>%
mutate(
sum(x, ifelse(between(row_number(), 3,6)))
)
但这当然行不通。我想用一些 dplyr 函数来解决它,但在基础 R 中我想不出快速的解决方案。
对于第一组,总和将为 3+4+5+6
....
最佳答案
一种选择可能是:
df %>%
group_by(y) %>%
mutate(z = sum(x[row_number() %in% 3:6]))
x y z
<int> <int> <int>
1 1 1 18
2 2 1 18
3 3 1 18
4 4 1 18
5 5 1 18
6 6 1 18
7 7 1 18
8 8 1 18
9 9 1 18
10 10 1 18
关于r - R 中分组数据帧中特定行号的总和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67633258/