Факторы уровней фактора - это строки символов, связанные с базовой целочисленной переменной (перечисление ).
Если мы рассмотрим базовую структуру этой переменной:
test <- factor(c("a", "a", "a", "b", "c", "a", "c", "b"))
, то увидим:
str(test)
## Factor w/ 3 levels "a","b","c": 1 1 1 2 3 1 3 2
Что levels()
делает, это назначает коды целочисленным значениям в порядке : levels(test) <- c("d","a","b","c")
делает соответствие 1 <-> «d», 2 <-> «a», 3 <-> «b», 4 <-> «c».Таким образом, значения, имеющие базовое значение 1 (с первого по третий и шестой элементы вектора), теперь имеют ассоциированную метку "d".
Более безопасный способ добавления нового уровня:
test <- factor(test,levels=c("d","a","b","c"))
test
## [1] a a a b c a c b
## Levels: d a b c
str(test)
## Factor w/ 4 levels "d","a","b","c": 2 2 2 3 4 2 4 3
Это изменяет порядок уровней (что имеет значение для построения и параметризации статистических моделей), но использует символьные значения при назначении целочисленных значений ...