[R语言学习笔记] - 对连续重复出现的数列去重并保留原始顺序

场景

有这么个需求,需要处理连续重复出现的数列,去重,并保留原始的顺序。如数据:
a <- c(1,1,1,1,2,2,3,3,3,1,1,1,3,3,4,4,2,2,2,2)
一般去重用unique会变成c(1,2,3,4),或者duplicated之类的。
但这里的需求是变成c(1,2,3,1,3,4,2)
有点像是向量按分组去重的感觉。

解决方案

a <- c(1,1,1,1,2,2,3,3,3,1,1,1,3,3,4,4,2,2,2,2)
rle(a)
# Run Length Encoding
#  lengths: int [1:7] 4 2 3 3 2 2 4
#  values : num [1:7] 1 2 3 1 3 4 2
rle(a)$values
# 1 2 3 1 3 4 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章