Poziomy ustawień podczas tworzenia czynnika vs. `poziomy () <-`
Najpierw stwórzmy kilka czynników:
F1 <- factor(c(1,2,20,10,25,3))
F2 <- factor(paste0(F1, " years"))
F3 <- F2
levels(F3) <- paste0(sort(F1), " years")
F4 <- factor(paste0(F1, " years"), levels=paste0(sort(F1), " years"))
potem spójrz na nie:
> F1
[1] 1 2 20 10 25 3
Levels: 1 2 3 10 20 25
> F2
[1] 1 years 2 years 20 years 10 years 25 years 3 years
Levels: 1 years 10 years 2 years 20 years 25 years 3 years
> F3
[1] 1 years 3 years 10 years 2 years 20 years 25 years
Levels: 1 years 2 years 3 years 10 years 20 years 25 years
> F4
[1] 1 years 2 years 20 years 10 years 25 years 3 years
Levels: 1 years 2 years 3 years 10 years 20 years 25 years
Najpierw zauważam, że „oczekiwana” kolejność poziomów w F2 nie jest podobna do F1. Spojrzenie nafactor
dokumentacja wyjaśnia, dlaczego: poziomy są tworzone przez pierwsze sortowanie danych wejściowych. W przypadku F2 są to łańcuchy, których sortowanie uwzględnia długość (?).
Trudniej jest mi zrozumieć różnicę w ustawianiu poziomów pomiędzy F3 i F4. W F3 ustawiam poziomy po utworzeniu czynnika, podczas gdy w F4 ustawiam je jawnie podczas tworzenia czynnika. W F3 użycie poziomów () <- nie jest wyłącznie relabelem poziomów, ale nie zmienia ich kolejności tak, jak oczekiwałem.
Czy ktoś może wyjaśnić różnicę?