У меня проблема. Например, у меня есть это:Сбросить значение cumsum до нуля в R
id truth count
1 1 1
2 1 2
3 0 0
4 1 1
5 1 2
6 1 3
8 0 0
Я попытался это:
fun <- rle(df$truth)
df$count <- unlist(sapply(fun$lengths, function(x) {return(1:x)}))
Но это не работает.
Что должно произойти, если в «истине» происходят два или более последовательных нуля? Как ваш код выходит из строя? – krlmlr
Если происходит больше последовательных нулей, то счет всегда равен нулю, кроме случаев, когда он находится в столбце «Истина» 1. И затем повторите 1,2,3. Например: 1 0 0 0 1 1 1 -> 1 0 0 0 1 2 3 –
Почему бы просто не добавить в конце: 'df $ count [df $ truth == 0] <- 0'? –