Configuración de niveles al crear un factor vs. niveles () <- `

Vamos a crear algunos factores primero:

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

Entonces eche un vistazo a ellos:

> 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

Primero observo que el orden "esperado" de los niveles en F2 no es similar a F1. Echando un vistazo afactor la documentación revela por qué: los niveles se crean al ordenar primero la entrada. En el caso de F2, estas son las cadenas, donde la clasificación tiene en cuenta la longitud (?).

Lo que me resulta más difícil de entender es la diferencia en la configuración de los niveles entre F3 y F4. En F3, establezco los niveles después de que se crea el factor, mientras que en F4 los establezco explícitamente al crear el factor. En F3, el uso de niveles () <- no es puramente una nueva etiqueta de los niveles, pero tampoco los reordena de la forma que esperaba.

¿Alguien puede explicar la diferencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta