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

Iva*_*van 6 r

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

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

Columnname
agsgssg
agsgssg
agsgssg
adgatata
ahagha
ahagha
ahagha
ahagha
aghaatah
ghssghs
ghssghs
ghssghs
Run Code Online (Sandbox Code Playgroud)

因子变量不能直接转换为带有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  
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种方法,包括使用levels()作为因子变量,使用freq()作为因子变量,试图找出每个级别有多少行,然后为每个级别的因子做几个"因为"循环没有成功.

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

谢谢您的考虑

akr*_*run 8

在情况下,水平在不同的顺序,我们可以将列转换为factorlevels指定为unique在该列中的元素,然后强迫它numeric/integer.

df1$Numericcolumnname <- as.numeric(factor(df1$Columnname, 
                  levels=unique(df1$Columnname)))
Run Code Online (Sandbox Code Playgroud)