2013-03-21 17 views
7

Ciao Sono nuovo di R quindi mi scuso se questa è una domanda molto semplice. Sto cercando di aggiungere del testo a un tracciato al punto 11 sull'asse x e al punto 900 sull'asse y che leggerà t0= -4.0280 con lo 0 come pedice. Dove t0 <- -4.0280 Per fare questo ho provato:Come includere pedice nel testo per le etichette del punto di trama

text(11,900,paste("t[0]=",t0),cex=0.8) 
# which gives 
't[0]= -4.0280' 

text(11,900,expression(paste("t[0]=",t0)),cex=0.8) 
# which gives 
't[0]=t0' 

# the closest I've gotten is:  
text(11,900,expression(paste(t[0]==t0)),cex=0.8) 

che utilizzerà pedice ma tornare t0 invece del mio valore -4,0280.

Qualcuno potrebbe mostrarmi dove sono andato male?

Cheers.

risposta

5

È possibile sostituire expression con substitute. Non è necessario il paste. L'argomento list(t0 = t0) dice substitute per sostituire la stringa t0 con il valore dell'oggetto t0:

plot(1,1) 

t0 <- 1.3 

text(1, 0.8, substitute(t[0]==t0, list(t0 = t0)), cex = 0.8) 

enter image description here

3

leggermente più corta rispetto substitute è con bquote:

plot(1,1) 
t0 <- -4.0280 
text(1, 0.8, bquote("t"[0] ~ "=" ~ .(t0))) 

di se si desidera piace usare paste lì:

text(1, 0.8, (bquote("t"[0]~.(paste0('=',t0))))) 

Questo tipo di Q è apparso in precedenza:

Using subscript and variable values at the same time in Axis titles in R

Concatenate strings and expressions in a plot's title

+1

Grazie ragazzi, sia di quelle risposte funzionava benissimo. Giusto per essere chiari, quando dovrei usare 'incolla' se questo non era l'uso corretto? – JJS

+0

Ecco un esempio di alcuni usi di 'paste' http://stackoverflow.com/a/15506875/1036500 – Ben

+0

Ho modificato la mia risposta per mostrare come potresti usare "incolla" qui, ma non è il più efficiente modo. Generalmente utilizzo 'paste' per creare vettori di caratteri piuttosto che oggetti che includono variabili come il tuo esempio. Detto questo, a volte faccio qualcosa come 'eval (parse (text = paste0 (" examp ", i))' dove viene valutato il risultato di incolla, ma questo è considerato una cattiva pratica - 'library (fortune); fortune (106)' – Ben