¿Por qué la terminología de etiquetas y niveles en factores es tan extraña?

Un ejemplo de una función no configurable seríalabels. Solo puede establecer etiquetas de factor cuando se crean con la función de factor. No haylabels<- Función. No es que las 'etiquetas' y los 'niveles' en los factores tengan sentido ...

>  fac <- factor(1:3, labels=c("one", "two", "three"))
> fac
[1] one   two   three
Levels: one two three
> labels(fac)
[1] "1" "2" "3"

OK, pedí etiquetas, que podría suponerse como fueron establecidas por la llamada de factor, pero obtengo algo bastante ... ¿cuál es la palabra, no intuitiva?

> levels(fac)
[1] "one"   "two"   "three"

e modo que parece que establecer etiquetas es realmente establecer niveles.

>  fac <- factor(1:3, levels=c("one", "two", "three"))
> levels(fac)
[1] "one"   "two"   "three"

OK que es como se esperaba. Entonces, ¿qué son las etiquetas cuando uno establece niveles?

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

Estimando raro, si me preguntas. Parecería que los argumentos de 'etiquetas' para el factor prevalecen sobre cualquier argumento de 'niveles' para la especificación de niveles. ¿Por qué debería ser esto? Parece una terminología confusa. ¿Y por quélabels() devolver lo que hubiera imaginado que se recuperaría con as.character (as.numeric (fac))?

(Este fue un comentario tangencial [etiquetado como tal] en una respuesta anterior sobre las funciones de asignación a las que me pidieron que pasara a una pregunta. Entonces, esta es su oportunidad para iluminarme).

Respuestas a la pregunta(2)

Su respuesta a la pregunta