Sembra esserci una differenza tra i livelli e le etichette di un fattore in R. Fino ad ora, ho sempre pensato che i livelli fossero il nome "reale" dei livelli dei fattori e le etichette fossero i nomi usati per l'output (come tabelle e grafici) . Ovviamente, questo non è il caso, come mostra il seguente esempio:
df <- data.frame(v=c(1,2,3),f=c('a','b','c'))
str(df)
'data.frame': 3 obs. of 2 variables:
$ v: num 1 2 3
$ f: Factor w/ 3 levels "a","b","c": 1 2 3
df$f <- factor(df$f, levels=c('a','b','c'),
labels=c('Treatment A: XYZ','Treatment B: YZX','Treatment C: ZYX'))
levels(df$f)
[1] "Treatment A: XYZ" "Treatment B: YZX" "Treatment C: ZYX"
Pensavo che i livelli ('a', 'b', 'c') potessero in qualche modo essere ancora accessibili durante lo script, ma questo non funziona:
> df$f=='a'
[1] FALSE FALSE FALSE
Ma questo fa:
> df$f=='Treatment A: XYZ'
[1] TRUE FALSE FALSE
Quindi, la mia domanda si compone di due parti:
Qual è la differenza tra livelli ed etichette?
È possibile avere nomi diversi per i livelli di fattore per lo scripting e l'output?
Background: per script più lunghi, lo scripting con livelli di fattore brevi sembra essere molto più semplice. Tuttavia, per report e grafici, questi livelli di fattore brevi potrebbero non essere adeguati e dovrebbero essere sostituiti con nomi più precisi.