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
그래서 내 질문은 두 부분으로 구성됩니다.
레벨과 레이블의 차이점은 무엇입니까?
스크립팅 및 출력을위한 요인 수준에 대해 다른 이름을 가질 수 있습니까?
배경 : 긴 스크립트의 경우 요소 수준이 짧은 스크립트가 훨씬 쉬워 보입니다. 그러나 보고서 및 그림의 경우이 짧은 요인 수준은 적절하지 않을 수 있으며 더 정확한 이름으로 대체해야합니다.