v <- c(1, 1, 5, 5, 5, 5, 2, 2, 6, 6, 1, 3, 3)
v[c(TRUE, !v[-length(v)] == v[-1])]
[1] 1 5 2 6 1 3
使用
dplyr
可以更优雅地编写同一:
library(dplyr)
v[v != lag(v)]
[1] NA 5 2 6 1 3
返回的Na
lag()
删除了第一个值,为了保留第一个值,您可以将默认值更改为与第一个值不同的值。
v[v != lag(v, default = !v[1])]
[1] 1 5 2 6 1 3