4

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

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

感谢您花时间提供帮助。

4

2 回答 2

9

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")
于 2013-04-25T15:51:09.520 回答
3

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

如果要恢复级别,可以键入levels(DATA$COLOR). 在控制台中查看和查看更多信息?factor?levels如果您想重新调整一个因素,请尝试添加一个可重现的示例,以便我可以浏览代码。

于 2013-04-25T15:48:19.497 回答