使用R中的标签中的希腊语表达式对数字变量进行分解

时间:2014-01-14 20:05:13

标签: r expression labels r-factor

假设以下数据框,我想要将var分解,并将数字标记为希腊字母,从1到alpha,2到beta,3到gamma。但是以下代码不起作用。

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 个答案:

答案 0 :(得分:3)

您的语言环境是否支持这些字符? '\ u03b1'打印字母字符吗?如果没有,您需要更改编码。如,

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

然后将您对expression的调用替换为alpha,beta等的unicode字符串。

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

您使用expression的方式仅适用于地块。除非你确实需要在你的因子中包含希腊字母,否则我建议使用'alpha','beta'等字样,直到绘制时间为止。

答案 1 :(得分:0)

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

这会生成一个数据帧,其中1,2,3转换为alpha,beta,gamma。希望这就是你要找的东西