【发布时间】:2021-11-24 12:14:42
【问题描述】:
基本上,我需要更改满足特定条件后出现的每一行。虽然我也需要循环来服从分组变量。我的数据的简化版本(如下所示)是分组变量(Groups),后跟一个值(N),然后是条件变量(R)。您可以按如下方式创建我的数据的简化版本:
Groups <- c("A", "A", "A", "A", "B", "B", "B", "B", "C", "C")
N <- c(1,1,1,1,1,1,1,1,1,1)
R <- c("N", "N", "Y", "N", "N", "N", "Y", "N", "N", "N")
Dat <- as.data.frame(cbind(Groups, N, R))
我需要的是,当 R == "Y" 时,该行以及该组之后的每一行都将 +1 添加到 N 变量中。所以解决方案应该是这样的:
Groups N R
1 A 1 N
2 A 1 N
3 A 2 Y
4 A 2 N
5 B 1 N
6 B 1 N
7 B 2 Y
8 B 2 N
9 C 1 N
10 C 1 N
所以循环需要随着每个新组重新开始。理想情况下,首选 dplyr 中的解决方案,但我还没有找到。
任何帮助或指导将不胜感激!
【问题讨论】: