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

时间:2013-11-13 22:38:59

标签: r data.table

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

group
 005j         
 005j         
 0k16         
 0fff       
 0fff

我想得到一系列代表相同分组的递增整数:

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

我可以用循环来做这件事,但它会非常慢。

1 个答案:

答案 0 :(得分: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

引用?data.table的帮助...

  

.GRP integerlength 1,包含一个简单的组计数器。第1组为1,第2组为2,等等。