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」),可以在某種程度上仍然可以編寫腳本時訪問,但是這並未「T工作:
> df$f=='a'
[1] FALSE FALSE FALSE
但這:
> df$f=='Treatment A: XYZ'
[1] TRUE FALSE FALSE
所以,我的問題由兩個部分組成:
關卡和標籤有什麼區別?
對於腳本和輸出可以有不同的因子級別名稱嗎?
背景:對於較長的腳本,短因子水平的腳本似乎更容易。但是,對於報告和圖表來說,這個短期因素水平可能不足,應該用高級名稱替換。
感謝您的快速回答!我想我現在明白關卡和標籤的用途。也許有沒有人工編輯表名和圖例的人性化輸出的更好的可讀性的建議? – donodarazao 2011-05-03 13:02:18
在繪製/製作標籤之前,我經常會轉換關卡的級別,例如在操作時保持水平爲「a」,「b」,「c」,然後在水平(f)< - 粘貼(「治療」,toupper(水平(f)),sep =「」)[或某物]繪圖。或者創建一個並行因子f_pretty,並將其用於輸出...... – 2011-05-03 14:13:31
我曾考慮過這兩種方法,但這兩種方法都有缺點。當繪製大量圖表時,第一個可能會變得乏味,而當腳本中涉及大量數據聚合時,第二個可能會變得乏味。但顯然沒有辦法很容易避免,所以我會隨着你的建議。 :) – donodarazao 2011-05-04 07:22:27