相关疑难解决方法(0)

在特定值的连续运行中创建计数器

我有小时价值.我想计算自上一次非零以来该值连续多少小时.对于电子表格或循环来说,这是一项简单的工作,但我希望有一个快速的矢量化单行程来完成任务.

x <- c(1, 0, 1, 0, 0, 0, 1, 1, 0, 0)
df <- data.frame(x, zcount = NA)

df$zcount[1] <- ifelse(df$x[1] == 0, 1, 0)
for(i in 2:nrow(df)) 
  df$zcount[i] <- ifelse(df$x[i] == 0, df$zcount[i - 1] + 1, 0)
Run Code Online (Sandbox Code Playgroud)

期望的输出:

R> df
   x zcount
1  1      0
2  0      1
3  1      0
4  0      1
5  0      2
6  0      3
7  1      0
8  1      0
9  0      1
10 0      2
Run Code Online (Sandbox Code Playgroud)

r

17
推荐指数
4
解决办法
1万
查看次数

胜利序列

我正在尝试计算二元向量的一系列胜利条纹.给出一个矢量

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上最简单的方法是什么?

r

8
推荐指数
1
解决办法
477
查看次数

标签 统计

r ×2