删除连续重复的值

时间:2018-06-22 09:18:29

标签: r

有人知道如何删除连续重复的值吗?不只是使用 unique()函数重复值。

例如,我想要:

0,0,0,0,1,1,1,2,2,2,3,3,3,3,2,2,1,2 

成为

0,1,2,3,2,1,2

而不仅仅是

0,1,2,3

有没有一个词来形容这个?我确定解决方案在某个地方,但是我找不到它,因为我不知道这个词。

2 个答案:

答案 0 :(得分:2)

与前一个值的差不为零时保留一个值(并保留第一个):

x <- c(0,0,0,0,1,1,1,2,2,2,3,3,3,3,2,2,1,2)
x[c(1, diff(x)) != 0]

# [1] 0 1 2 3 2 1 2

答案 1 :(得分:0)

v <- c(0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 2, 2, 1, 2)
rle(v)$values

输出:

[1] 0 1 2 3 2 1 2