更改R中变量的参考级别

时间:2013-04-25 15:41:28

标签: r levels

我有一个变量COLOR的数据集(称之为DATA)。 COLOR的模式是数字,类是因子。首先,我对“数字”感到有点困惑 - 打印出来时,COLOR的数据不是数字 - 它们都是字符值,如白色或蓝色或黑色等。任何对此的澄清都表示赞赏。

此外,我需要编写R代码以返回COLOR变量的级别,然后确定此变量的当前参考级别,最后将此变量的参考级别设置为白色。我尝试使用因子,但完全不成功。

感谢您抽出宝贵时间提供帮助。

2 个答案:

答案 0 :(得分:6)

mode(DATA$COLOR)"numeric",因为R在内部将因子存储为数字代码(以节省空间),以及与代码值对应的标签的关联向量。当您打印因子时,R会自动替换每个代码的相应标签。

f <- factor(c("orange","banana","apple"))
## [1] orange banana apple 
## Levels: apple banana orange
str(f)
##  Factor w/ 3 levels "apple","banana",..: 3 2 1
c(f)    ## strip attributes to get a numeric vector
## [1] 3 2 1 
attributes(f)
## $levels
## [1] "apple"  "banana" "orange"
## $class
## [1] "factor"

...我需要编写R代码来返回COLOR变量的级别......

levels(DATA$COLOR)

...然后确定此变量的当前参考水平

levels(DATA$COLOR)[1]

...最后将此变量的参考级别设置为白色。

DATA$COLOR <- relevel(DATA$COLOR,"White")

答案 1 :(得分:3)

这是R stores factors的结果。您在控制台中看到的值看起来像字符,但在内部存储为数字(原因可能超出了此处的范围)。

如果要恢复级别,可以键入levels(DATA$COLOR)。在控制台中查看?factor?levels以查看更多内容。如果您想重新级别因素,请尝试添加reproducible example,以便我可以浏览代码。