我想删除重复的但保留第一个二进制向量:
x = c(0,0,1,1,0,1,0,1,1,1,0,1) # the input y = c(0,0,1,0,1,0,1,0,1) # the desired output
即,分别移除第一组和第三组中的一个1
和两个,并保留该组中的第一组.1
1
我想用rle
用cumsum
,但尚未计算出来.任何建议将不胜感激.
使用rle
/inverse.rle
res <- rle(x) res$lengths[res$values == 1] <- 1 inverse.rle(res) ## [1] 0 0 1 0 1 0 1 0 1
我们可以使用diff
:
x[c(1, diff(x)) == 1 | x == 0]