我有一个变量COLOR的数据集(称之为DATA)。 COLOR的模式是数字,类是因子。首先,我对“数字”感到有点困惑 - 打印出来时,COLOR的数据不是数字 - 它们都是字符值,如白色或蓝色或黑色等。任何对此的澄清都表示赞赏。
此外,我需要编写R代码以返回COLOR变量的级别,然后确定此变量的当前参考级别,最后将此变量的参考级别设置为白色。我尝试使用因子,但完全不成功。
感谢您抽出宝贵时间提供帮助。
答案 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,以便我可以浏览代码。