不可设置函数的一个例子是labels
. 您只能在使用因子函数创建因子标签时设置它们。没有labels<-
功能。并不是说因素中的“标签”和“水平”有任何意义......
> fac <- factor(1:3, labels=c("one", "two", "three"))
> fac
[1] one two three
Levels: one two three
> labels(fac)
[1] "1" "2" "3"
好的,我要求标签,可能会假设是由因子调用设置的,但我得到了一些相当的东西......这个词是什么,不直观?
> levels(fac)
[1] "one" "two" "three"
所以看起来设置标签实际上是设置级别。
> fac <- factor(1:3, levels=c("one", "two", "three"))
> levels(fac)
[1] "one" "two" "three"
好的,正如预期的那样。那么当一个人设置级别时,标签是什么?
> fac <- factor(1:3, levels=c("one", "two", "three"), labels=c("x","y", "z") )
> labels(fac)
[1] "1" "2" "3"
> levels(fac)
[1] "x" "y" "z"
如果你问我,感觉很奇怪。看起来,因子的“标签”论据胜过任何“水平”论据来规范水平。为什么会这样?似乎是一个混乱的术语。为什么会labels()
返回我想用 as.character(as.numeric(fac)) 检索的内容?
(这是关于分配函数的较早答案中的一个切线评论[标记为此类],我被要求转到一个问题。所以这是你启发我的机会。)