Suppose the following data frame, I want to factorized var, and label numbers to Greek letters, from 1 to alpha, 2 to beta, 3 to gamma. But the following code does not work.
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)))
Why the final data frame is not greek letters but just text expressions? Can anyone help me on this? Thanks a lot.
Does your locale support these characters? Does '\u03b1' print an alpha character? If not, you'll need to change your encoding. E.g.,
Then replace your calls to
expression
with the unicode strings for alpha, beta, etc.The way you're using
expression
is only valid for plots. Unless you really need to have Greek letters in your factor, I suggest using the words 'alpha', 'beta', etc. until it's time to plot.df$var=factor(var,labels=c('alpha','beta','gamma'))
This produces a dataframe with the 1,2,3 transformed into alpha, beta, gamma. Hope this is what you were looking for