R 标识符作为以1开头的序列

R 标识符作为以1开头的序列,r,dplyr,transform,sequence,identifier,R,Dplyr,Transform,Sequence,Identifier,我的数据集中有一个ID,指示观察所属的用户。我想把它重新编码为一个从1开始的序列 示例数据 da1 <- data.frame(player = c(120,120,120,47,47,18,18,18), wins = c(0,2,1,0,0,2,0,1)) da1 player wins 1 120 0 2 120 2 3 120 1 4 47 0 5 47 0 6 18 2 7 18 0

我的数据集中有一个ID,指示观察所属的用户。我想把它重新编码为一个从1开始的序列

示例数据

da1 <- data.frame(player = c(120,120,120,47,47,18,18,18), wins = c(0,2,1,0,0,2,0,1))

da1
  player wins
1    120    0
2    120    2
3    120    1
4     47    0
5     47    0
6     18    2
7     18    0
8     18    1

我认为
tidyverse
解决方案类似于:

da1$player <- 
  da1 %>% 
  group_by(player) %>% 
  group_indices()
或始终
数据。表
解决方案(对订购不敏感):

另一个
base R
备选方案:

as.integer(factor(-da1$player))

我认为
tidyverse
解决方案类似于:

da1$player <- 
  da1 %>% 
  group_by(player) %>% 
  group_indices()
或始终
数据。表
解决方案(对订购不敏感):

另一个
base R
备选方案:

as.integer(factor(-da1$player))
da2
da2
match(da1$player,unique(da1$player))
match(da1$player,unique(da1$player))
setDT(da1)[, player := .GRP, by = player]
da1
as.integer(factor(-da1$player))
da2 <- transform(da1, id=match(player, unique(player)))