首页 > 解决方案 > 如何根据不断变化的唯一值对 R 中的向量进行顺序编号?

问题描述

假设我有以下向量:

dat <- c(1,1,1, 2,2,2, 3,3, 4,4,4,4)   <- (I added spaces to better see grouping)

我想1dat. 期望的结果是:

1 2 3   1 2 3   1 2   1 2 3 4    <- (I added spaces to better see grouping)

我的尝试:

unlist(
  lapply(unique(dat), function(x) 
     seq(1,length(which(dat==x)==T),1)
  )
)

[1] 1 2 3 1 2 3 1 2 1 2 3 4

有没有更直接的方法来做到这一点?

标签: rvectoruniquesequenceapply

解决方案


是的:

sequence(rle(dat)$lengths)

推荐阅读