我目前正在优化 R 代码。所以,我尽量避免动态内存分配、FOR 循环…… 但是,我在某些 FOR 循环中遇到了一些困难,我需要创建这样的行为:
输入:
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 循环和非优化代码。
谢谢
最佳答案
这就是诀窍:
cumsum(v)-1L
关于r - 计算向量索引的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31167038/