[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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章