Почему терминология меток и уровней в факторах такая странная?

Примером ненастраиваемой функции могут быть метки . Вы можете установить метки факторов, только если они созданы с помощью функции фактора. Нет функции метки <- . Не то, чтобы «метки» и «уровни» в факторах имели какой-либо смысл ....

>  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))?

(Это был косвенный комментарий [помечен как таковой] в предыдущий ответ о функциях присваивания, к которому меня попросили перейти к вопросу. Итак, вот ваша возможность просветить меня.)

34
задан 42- 19 August 2011 в 23:33
поделиться