Путаница между уровнями факторов и метками факторов

Кажется, есть разница между уровнями и метками фактора в R. До сих пор я всегда думал, что уровни - это «настоящее» имя уровней факторов, а метки - это имена, используемые для вывода (например, таблиц и графиков). Очевидно, что это не так, как показывает следующий пример:

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"

Я думал, что уровни ('a', 'b', 'c') каким-то образом могут быть доступны при написании сценария, но это не работает:

> df$f=='a'
[1] FALSE FALSE FALSE

Но это значит:

> df$f=='Treatment A: XYZ' 
[1]  TRUE FALSE FALSE

Итак, мой вопрос состоит из двух частей:

  • В чем разница между уровнями и метками?

  • Можно ли иметь разные имена для уровней факторов для сценариев и вывода?

Предпосылки: Для более длинных сценариев создание сценариев с короткими уровнями факторов кажется намного проще. Однако для отчетов и графиков эти краткие уровни факторов могут не подходить и должны быть заменены более точными названиями.

94
задан divibisan 5 September 2018 в 17:10
поделиться