特定のデータフレームについて、ブール値に基づいて分割し、その行とその時点までの前の行にラベルを適用したいと思います。
次のデータフレームを想定しています。
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)
}
}
これを行うための最良/最も簡単な方法は何ですか?どんな助けでも大歓迎です。