我正在尝试使用data.table将因子变量重新编码为整数。鉴于:
group
005j
005j
0k16
0fff
0fff
我想得到一系列表示相同分组的递增整数:
group intCode
005j 1
005j 1
0k16 2
0fff 3
0fff 3
我可以通过循环执行此操作,但速度会非常慢。
最佳答案
您可以简单地使用.GRP
表达式中可用的j
符号,并使用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
引用
?data.table
的帮助....GRP
是integer
,length
1,包含一个简单的组计数器。第一组为1,第二组为2,依此类推。