首页 > 解决方案 > 在向量中将非连续的加一

问题描述

我有一个 1 和 0 的向量。我想用向量中的“点”替换 1s。

例如我想改变

 x = c(1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1)

1 1 1 0 2 2 2 0 0 3 0 4

一行中的 1 和 0 的数量可以改变。

标签: r

解决方案


这是一种方法...

x = c(1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1)

x[x==1] <- cumsum(c(x[1], diff(x)) == 1)[x==1]

x
 [1] 1 1 1 0 2 2 2 0 0 3 0 4

推荐阅读