2014-01-14 20 views
0

假設下面的數據框,我想將因式分解var和希臘字母的標籤數字,從1到alpha,2到beta,3到gamma。但下面的代碼不起作用。在R標籤中分解希臘表達式的數字變量

var<-c(1,1,2,2,3,3) 
df<-as.data.frame(var) 
df$var<-factor(df$var, levels=c(1,2,3), 
       labels=c("1"=expression(alpha), 
         "2"=expression(beta), 
         "3"=expression(gamma))) 

爲什麼最終的數據框不是希臘字母,而只是文本表達式?誰可以幫我這個事?非常感謝。

回答

2

你的語言環境是否支持這些字符? '\ u03b1'是否打印字母字符?如果沒有,你需要改變你的編碼。例如,

Sys.setlocale('LC_CTYPE', 'greek') 

然後更換您的通話expression與α,β的unicode字符串,等等

df$var<-factor(df$var, levels=c(1,2,3), 
       labels=c("1"='\u03b1', 
         "2"='\u03b2', 
         "3"='\u03b3')) 

你使用expression的方式僅適用於繪圖。除非你的確實需要在你的因子中包含希臘字母,否則我建議使用單詞'alpha','beta'等,直到需要繪製時爲止。

+0

這就是我正在尋找,thx爲解釋使用「表達」〜 – Chen

0

df$var=factor(var,labels=c('alpha','beta','gamma'))

這產生與變換到α,β,γ的1,2,3-一個數據幀。希望這是你正在尋找的

+0

這給出了我的原始代碼的結果,但無論如何thx。 – Chen

+0

對不起,我誤解了,很高興你能得到你想要的結果 –

相關問題