我对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()作为因子变量,试图找出每个级别有多少行,然后为每个级别的因子做几个"因为"循环没有成功.
我觉得它应该有一个非常简单的解决方案,我只是没有搞清楚.
谢谢您的考虑
在情况下,水平在不同的顺序,我们可以将列转换为factor与levels指定为unique在该列中的元素,然后强迫它numeric/integer.
df1$Numericcolumnname <- as.numeric(factor(df1$Columnname,
levels=unique(df1$Columnname)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3087 次 |
| 最近记录: |