2012-04-02 7 views
5

Ich habe eine Vektoren von Strings, sagen c("E^A","S^P","lambda","T","E^Q","E^Q","AT"), und ich möchte sie als die x-Achsenbeschriftung mit mathematischen Ausdruck plotten. (Ich glaube, ich geschrieben habe sie in mathematischem Ausdruck Format, aber mit Zitat)Wie konvertiert man einen String in einen mathematischen Ausdruck in R?

Als ich setzte

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)

Die x-Achse zeigt nur "E^A", "S^P",“ Lambda "," T "," E^Q "," E^Q "," AT ", nicht die mathematische Interpretation der Strings, und ich vermute, es liegt daran, dass sie nicht als mathematische Symbole betrachtet werden.

Wie kann ich dann eine mathematische Kennzeichnung bekommen? Vielen Dank!

+0

Verwendung Ausdruck() – aatrujillob

+0

'sowie' as.expression' expression' kann nicht Zeichen in Ausdruck umwandeln. – kohske

+0

Wenn Sie diese Ausdrücke auf der X-Achse haben wollen, haben Sie sich die "Achse" angesehen? – BenBarnes

Antwort

7

In der Regel verwenden expression (siehe ?plotMath):

plot(1,main=expression(E^A)) 

Beachten Sie, dass die 'E^A' nicht in Anführungszeichen ist.

Um Ausdrücke aus einem Zeichenvektor zu generieren, verwenden 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

+0

Vielen Dank! Es löst mein Problem genau !! – Pengyao

Verwandte Themen