Установка уровней при создании фактора против `levels () <-`

Давайте сначала создадим несколько факторов:

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

затем взгляните на них:

> 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

Сначала я отмечаю, что «ожидаемый» порядок уровней в F2 не похож на F1. Взглянув наfactor Документация показывает, почему: уровни создаются путем первой сортировки входных данных. В случае F2 это строки, где сортировка учитывает длину (?).

Что мне труднее понять, так это разницу в настройке уровней между F3 и F4. В F3 я устанавливаю уровни после создания фактора, а в F4 я устанавливаю их явно при создании фактора. В F3 использование level () - не является просто относительной меткой уровней, но и не переупорядочивает их так, как я ожидал.

Может кто-нибудь объяснить разницу?

Ответы на вопрос(2)

Ваш ответ на вопрос