对于给定的数据框,我想根据一些布尔值对其进行拆分,然后将标签应用于该行和之前的行,直到该点。
假设以下数据框:
test <- data.frame(x = 1:10, y = c(F, F, F, T, F, F, T, F, F, F))
我最终想创建一个新列,其中包含数据框特定部分的标签。理想情况下,如下所示:
x y z
1 F 1
2 F 1
3 F 1
4 T 1
5 F 2
6 F 2
7 T 2
8 F 3
9 F 3
10 F 3
我目前的想法是,我需要使用类似于以下(但不完全是)的函数遍历数据帧:
label.portion <- function(test) {
for (i in 1:nrow(test)) {
z <- 1
if(test$y[i]) { z <- z + 1 }
return(z)
}
}
最好/最简单的方法是什么?任何帮助深表感谢。