首页 > 解决方案 > 如何使用 dplyr 根据两列值给出相同的行号

问题描述

数据集看起来像

var1 var2
a    1
a    1
b    2
b    2
a    1
a    1
c    3 
c    3

新的数据集应该是:

var1 var2 id
a    1    1
a    1    1
b    2    2
b    2    2
a    1    3
a    1    3
c    3    4
c    3    4

标签: rdplyr

解决方案


我使用 data.table

df1<-
data.table::fread("var1 var2
a    1
a    1
b    2
b    2
a    1
a    1
c    3 
c    3")

df1$id <- data.table::rleidv(df1)

#   var1 var2 id
#1:    a    1  1
#2:    a    1  1
#3:    b    2  2
#4:    b    2  2
#5:    a    1  3
#6:    a    1  3
#7:    c    3  4
#8:    c    3  4

推荐阅读