我对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”循环没有成功。
我觉得它应该有一个非常简单的解决方案,我只是没有搞清楚。
感谢您的考虑
答案 0 :(得分:7)
如果级别的顺序不同,我们可以将列转换为factor
,并将levels
指定为该列中的unique
元素,然后将其强制转换为{{ 1}}。
numeric/integer