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

我可以用循环来做到这一点,但它会非常慢。

最佳答案

您可以简单地使用 .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 an integer, 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/

相关文章:

regex - Escaping Angled Bracket 的行为类似于前瞻

r - 强制使用 mapply 是否有解决方法

r - 识别 R 中网格中最近的邻居(空间)

r - 计算 R 中数据框中每对分类单元之间的差异性

c++ - 将 c++ 对象作为指针传递给 Rcpp 中另一个函数的重用

r - is.null 不适用于 R 中的 null data.table [可能的错误]?

r - 对两个数据帧中的两列进行条件 setdiff(全部到全部),并具有用于进行匹配的数字范围

r - 合并 data.table 时出错 - 编码警告消息

r - 如何解决 R 和性能与 SQL 中的差距和孤岛问题?

r - 将位向量写入R中最小大小的文件中