чтобы внутри каждой серии начинался счетчик?
library(dplyr)
d <- tibble(val = rnorm(1:10), load = c(T,T,F,T,T,T,F,F,T,T))
в результате хочу получить вектор
[1] 1 2 NA 1 2 3 NA NA 1 2
История: есть процесс с остановками. Хочу проверить есть ли статистически-значимые различия в зависимости от того, как много времени прошло от остановки. Для этого и хочу разметить данные.
раз никто не отвечает пока, напишу я. можно решить в лоб через цикл: решение так себе, зато первое приходит в голову d <- data.frame(val = rnorm(1:10), load = c(T,T,F,T,T,T,F,F,T,T)) counter = 1 d$counter = NA for (i in 1:nrow(d)) { if (d$load[i] == TRUE) { d$counter[i] = counter counter = counter + 1 } else { counter = 1 } }
как вариант `d %>% mutate(id = data.table::rleid(load)) %>% group_by(id) %>% mutate(index = row_number()*load, index = na_if(index, 0)) %>% select(-id)`
Обсуждают сегодня