从矢量:
v <- c(2,2,2,2,5,7,7,5,5,7,3,3,3)
根据条件v[i] != v[i+1]
,我如何获得:
[1] 2 5 7 5 7 3
答案 0 :(得分:4)
rle
功能会执行此操作。 rle代表行程编码。
v <- c(2,2,2,2,5,7,7,5,5,7,3,3,3)
rle(v)$values
## [1] 2 5 7 5 7 3
答案 1 :(得分:1)
这也可以使用diff
v[c(TRUE,diff(v)!=0)]
#[1] 2 5 7 5 7 3
或使用rleid
library(data.table)
library(data.table)
setDT(list(v))[,V1[1L] ,rleid(V1)]$V1
#[1] 2 5 7 5 7 3