我正在尝试计算二元向量的一系列胜利条纹.给出一个矢量
set.seed(2)
x <- sample(c(0,1), 10, replace = TRUE)
[1] 0 1 1 0 1 1 0 1 0 1
Run Code Online (Sandbox Code Playgroud)
我想计算每次有零时"重置"的累计和.因此,在这种情况下,函数的输出应该是
[1] 0 1 2 0 1 2 0 1 0 1
Run Code Online (Sandbox Code Playgroud)
在R上最简单的方法是什么?
Ron*_*hah 15
我们可以使用ave并创建一个分组变量,cumsum在向量中每次出现0,并计算每组中不带0的连续数字.
ave(x, cumsum(x==0), FUN = seq_along) - 1
#[1] 0 1 2 0 1 2 0 1 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |