आर। में एक कारक के स्तरों और लेबल के बीच अंतर प्रतीत होता है। अब तक, मैंने हमेशा सोचा था कि स्तर कारक स्तरों का 'वास्तविक' नाम थे, और लेबल आउटपुट के लिए उपयोग किए जाने वाले नाम थे (जैसे टेबल और प्लॉट) । जाहिर है, यह मामला नहीं है, जैसा कि निम्नलिखित उदाहरण दिखाता है:
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"
मैंने सोचा था कि स्क्रिप्टिंग के दौरान किसी भी स्तर ('ए', 'बी', 'सी') को अभी भी एक्सेस किया जा सकता है, लेकिन यह काम नहीं करता है:
> df$f=='a'
[1] FALSE FALSE FALSE
लेकिन यह करता है:
> df$f=='Treatment A: XYZ'
[1] TRUE FALSE FALSE
तो, मेरे प्रश्न में दो भाग हैं:
स्तर और लेबल में क्या अंतर है?
क्या स्क्रिप्टिंग और आउटपुट के लिए कारक स्तरों के लिए अलग-अलग नाम रखना संभव है?
बैकग्राउंड: लंबी स्क्रिप्ट्स के लिए, शॉर्ट फैक्टर लेवल के साथ स्क्रिप्टिंग करना ज्यादा आसान लगता है। हालांकि, रिपोर्टों और भूखंडों के लिए, यह छोटा कारक स्तर पर्याप्त नहीं हो सकता है और इसे प्रीइज़र नामों से बदला जाना चाहिए।