Как преобразовать строку в математическое выражение в R? - PullRequest
5 голосов
/ 02 апреля 2012

У меня есть векторы строк, скажем 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)

На оси х показаны только «E ^ A», «S ^ P», «лямбда», «T», «E ^ Q», «E ^ Q», «AT», а не математическая интерпретация строки, и я думаю, это потому, что они не рассматриваются как математические символы.

Как я могу получить математическую маркировку? Спасибо!

1 Ответ

7 голосов
/ 02 апреля 2012

В общем случае используйте 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...