R将因子ID变量转换为数字ID变量

时间:2016-02-22 16:28:59

标签: r

我对R有一个编程疑问,我不知道如何在花费数小时查看互联网和Stack Overflow上的潜在响应之后解决它。

我在data.frame的列中有一个因子变量,如下所示:

Columnname
agsgssg
agsgssg
agsgssg
adgatata
ahagha
ahagha
ahagha
ahagha
aghaatah
ghssghs
ghssghs
ghssghs

因子变量不能直接转换为带有as.numeric(as.character())的数字,因为每个级别都是字符串,而不是数字。

我需要的是

Columnname            Numericcolumnname
agsgssg                        1
agsgssg                        1
agsgssg                        1
adgatata                       2
ahagha                         3   
ahagha                         3  
ahagha                         3   
ahagha                         3  
aghaatah                       4  
ghssghs                        5
ghssghs                        5   
ghssghs                        5  

我尝试了几种方法,包括使用levels()作为因子变量,使用freq()作为因子变量,试图找出每个级别有多少行,然后为每个级别的因子制作一个重复的数字有几个“for”循环没有成功。

我觉得它应该有一个非常简单的解决方案,我只是没有搞清楚。

感谢您的考虑

1 个答案:

答案 0 :(得分:7)

如果级别的顺序不同,我们可以将列转换为factor,并将levels指定为该列中的unique元素,然后将其强制转换为{{ 1}}。

numeric/integer