我正在尝试使用data.table将因子变量重新编码为整数.鉴于:
group
005j
005j
0k16
0fff
0fff
Run Code Online (Sandbox Code Playgroud)
我想得到一系列代表相同分组的递增整数:
group intCode
005j 1
005j 1
0k16 2
0fff 3
0fff 3
Run Code Online (Sandbox Code Playgroud)
我可以通过循环来做到这一点,但它会非常慢.
Sim*_*lon 10
您可以简单地使用表达式中.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
Run Code Online (Sandbox Code Playgroud)
引用帮助?data.table......
.GRP是integer,length如图1所示,含有一个简单的组计数器.第1组1个,第2组2个,等等.