Примером ненастраиваемой функции могут быть метки
. Вы можете установить метки факторов, только если они созданы с помощью функции фактора. Нет функции метки <-
. Не то, чтобы «метки» и «уровни» в факторах имели какой-либо смысл ....
> 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"
Странно, если вы спросите меня. Казалось бы, аргументы «ярлыков» в пользу фактора важнее любых аргументов «уровней» для определения уровней. Почему это должно быть? Похоже на запутанную терминологию. И почему метки ()
возвращают то, что, как я ожидал, можно получить с помощью as.character (as.numeric (fac))?
(Это был косвенный комментарий [помечен как таковой] в предыдущий ответ о функциях присваивания, к которому меня попросили перейти к вопросу. Итак, вот ваша возможность просветить меня.)