如何在R中将字符串转换为数学表达式?

7
我有一个字符串向量,例如c("E^A","S^P","lambda","T","E^Q","E^Q","AT"),我想将它们作为x轴标签使用数学表达式进行绘图。(我相信我已经按照数学表达式格式编写了它们,但加上了引号)
当我输入 text(x,par("usr")[3]-0.2,labels=substitute(A,list(A=label)),srt=20,pos=1,adj = c(1.1,1.1), xpd = TRUE,cex=0.7) x轴仅显示"E^A","S^P","lambda","T","E^Q","E^Q","AT",而不是字符串的数学解释,我猜这是因为它们不被视为数学符号。
那么如何获得数学标签呢?非常感谢!

expression以及as.expression无法将字符转换为表达式。 - kohske
如果你想在x轴上获得这些表达式,你看过?axis了吗? - BenBarnes
1个回答

8
通常情况下,使用expression(参见?plotMath):
plot(1,main=expression(E^A))

请注意,'E^A'不要加引号。
要从字符向量生成表达式,请使用parse(text=...):
lbls <- c("E^A","S^P","lambda","T","E^Q","E^Q","AT")    
x <- 1:length(lbls)
y <- runif(length(lbls))
# I'm just going to draw labels on the (x,y) points.
plot(x,y,'n')
text(x,y, labels=parse(text=lbls)) # see the parse(text=lbls) ?

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接