我正在尝试使用 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
is aninteger
,length
1, containing a simple group counter. 1 for the 1st group, 2 for the 2nd, etc.
关于r - 使用 data.table 将字符串的因子变量转换为整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19965939/