我想删除重复的,但将第一个保留在二进制向量中:

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与ojit_code一起使用,但尚未弄清楚。任何建议,将不胜感激。

最佳答案

使用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

关于R:删除重复的值,并将第一个值保留在二进制向量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34271856/

10-13 01:17