R 使用data.table将字符串的因子变量转换为整数列表

R 使用data.table将字符串的因子变量转换为整数列表,r,data.table,R,Data.table,我正在尝试使用data.table将因子变量重新编码为整数。鉴于: group 005j 005j 0k16 0fff 0fff 我想得到一系列表示相同分组的递增整数: group intCode 005j 1 005j 1 0k16 2 0fff 3 0fff 3 我可以用一个循环来实现这一点,但速度会非常慢。您可以简单地使用j表

我正在尝试使用data.table将因子变量重新编码为整数。鉴于:

group
 005j         
 005j         
 0k16         
 0fff       
 0fff
我想得到一系列表示相同分组的递增整数:

group   intCode
 005j      1   
 005j      1   
 0k16      2   
 0fff      3 
 0fff      3

我可以用一个循环来实现这一点,但速度会非常慢。

您可以简单地使用
j
表达式中可用的
.GRP
符号,使用
by=group
定义组

dt[ , intCode := .GRP , by = group ]
dt
#   group intCode
#1:  005j       1
#2:  005j       1
#3:  0k16       2
#4:  0fff       3
#5:  0fff       3
引用
?数据表的帮助

dt[ , intCode := .GRP , by = group ]
dt
#   group intCode
#1:  005j       1
#2:  005j       1
#3:  0k16       2
#4:  0fff       3
#5:  0fff       3
.GRP
是一个
整数
长度
1,包含一个简单的组计数器。第一组1人,第二组2人,以此类推


工作完美。非常感谢!