1
從矢量在矢量的每個值的第一次出現:根據條件
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
從矢量在矢量的每個值的第一次出現:根據條件
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
的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
這可以通過使用diff
v[c(TRUE,diff(v)!=0)]
#[1] 2 5 7 5 7 3
或者從library(data.table)
library(data.table)
setDT(list(v))[,V1[1L] ,rleid(V1)]$V1
#[1] 2 5 7 5 7 3
使用
rleid
也做