我目前正致力于优化R代码。所以,我试着避免动态内存分配,FOR循环,... 但是,我对一些FOR循环有一些困难,我需要创建一个这样的行为:
INPUT:
v <- c(TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE)
输出:
[1] 0 0 0 1 1 2 3 3 3 3
我认为,最简单的方法是能够将“TRUE”的出现次数计算到向量的当前索引。 如果你有任何想法...... 请记住避免使用FOR循环和非优化代码。
由于
答案 0 :(得分:3)
这就是诀窍:
cumsum(v)-1L