假设以下数据框,我想要将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)))
为什么最终数据框不是希腊字母而只是文字表达?谁可以帮我这个事?非常感谢。
答案 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。希望这就是你要找的东西