当前位置:  开发笔记 > 编程语言 > 正文

R:删除重复的值并将第一个保留在二进制向量中

如何解决《R:删除重复的值并将第一个保留在二进制向量中》经验,为你挑选了2个好方法。

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

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和两个,并保留该组中的第一组.11

我想用rlecumsum,但尚未计算出来.任何建议将不胜感激.



1> David Arenbu..:

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



2> jeremycg..:

我们可以使用diff:

x[c(1, diff(x)) == 1 | x == 0]

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有