2013-09-23 9 views
5

ho bisogno di simile a questa:Come posso includere un apice nei testi su un grafico su R?

R^2 = alcuni valori

e ho provato il codice qui sotto, ma che non avrebbe funzionato, è venuto fuori come "R (espressione (2 ^)) = alcuni valori" invece:

text (25, 200, paste ("R (expression (^2)) =", round (rsquarelm2, 2))) 
+1

Ho trovato questo spirito h una ricerca su Google. Forse puoi modificarlo: 'text (-pi/2, 0, expression (hat (alpha) == (X^t * X)^{- 1} * X^t * y))' –

risposta

6

Se non si desidera un vettore personaggio, ma l'espressione, quindi questa

expression(R^2 == 0.85) 

è quello che serve. In questo caso, si desidera sostituire il risultato di un'altra operazione R. Per quello che vuoi substitute() o bquote(). Trovo quest'ultimo più facile lavorare con:

rsquarelm2 <- 0.855463 
plot(1:10, 1:10, type = "n") 
text(5, 5, bquote(R^2 == .(round(rsquarelm2, 2)))) 

Con bquote(), nulla in .() viene valutato e il risultato è incluso nell'espressione restituita.

3

La funzione paste restituisce una stringa, non un'espressione. Io preferisco usare bquote per casi come questo:

text(25, 200, bquote(R^2 == .(rs), list(rs=round(rsquarelm2,2)))) 
0

Come includere la formattazione e valori matematici in trame è FAQ 7.13.

Per esempio, se ahat è uno stimatore del parametro a di interesse, utilizzare

title(substitute(hat(a) == ahat, list(ahat = ahat)))

(notare che è ‘==’ e non ‘=’). Talvolta bquote() dà una più forma compatta, ad esempio, title(bquote(hat(a) = .(ahat)))

dove sottoespressioni racchiuse tra ‘.()’ sono sostituiti dai loro valori.

demo(plotmath) è anche utile.


In questo caso, è possibile utilizzare sia

title(substitute(R^2 = rsq, list(rsq = format(rsquarelm2, digits = 2)))) 

o

title(bquote(R^2 == .(format(rsquarelm2, digits = 2)))) 

(format è più appropriato qui di round, dal momento che si desidera controllare come il valore viene visualizzato piuttosto di creare un'approssimazione del valore stesso.)

Problemi correlati