R 重编码整数序列

R 重编码整数序列,r,dplyr,R,Dplyr,从包含一列的data.frame对象开始: id <- c(1, 1, 1, 2, 3, 3 , 1, 1, 2, 2, 2, 3, 1, 2, 3, 3, 3, 1, 2, 3, 4, 5, 5, 5) id <- as.data.frame(id) 预期结果: 我想重新编码我的价值观 id2 1 1 1 2 3 3

从包含一列的data.frame对象开始:

 id <- c(1, 1, 1, 2, 3, 3 , 1, 1, 2, 2, 2, 3, 1, 2, 3, 3, 3, 1, 2, 3, 4, 5, 5, 5)

 id <-  as.data.frame(id)
预期结果: 我想重新编码我的价值观

id2
1           
1               
1               
2               
3               
3               
4   
4               
5               
5
5               
6               
7           
8               
9               
9               
9               
10          
11              
12
13          
14              
14              
14
我正在尝试使用
dplyr
r包中的
groupby
/
ungroup
动词

以下是所考虑的方法:

library(dplyr)

id2 <- id %>%
 group_by(id) %>%
 mutate id2 =   %>%   # needing some help !
 ungroup %>%
 select(2)
库(dplyr)
id2%
分组依据(id)%>%
mutate id2=%>%#需要帮助!
解组%>%
选择(2)

我们可以使用
rleid

data.frame(id2 = data.table::rleid(id$id))

或者使用
rle
from
base R

inverse.rle(within.list(rle(id$id), values <- seq_along(values)))

inverse.rle(在.list内(rle(id$id),值很棒。如何保持id列?(id,id2)@Wilcar您可以使用
data.frame(id=id$id,id2=data.table:L:rleid(id$id))
inverse.rle(within.list(rle(id$id), values <- seq_along(values)))