2013-02-25 27 views
22

Sto cercando di etichettare una trama con la seguente etichetta:usare l'espressione con una variabile r

"Alcuni Assay EC50 (UM)" dove la "u" è un micro simbolo.

Al momento ho:

assay <- "Some Assay" 
plot(0,xlab=expression(paste(assay," AC50 (",mu,"M)",sep=""))) 

ma che dà: "test EC50 (UM)" piuttosto che il desiderato "Alcuni Assay EC50 (UM)".

Suggerimenti? Grazie.

Ho anche provato:

paste(assay,expression(paste(" AC50 (",mu,"M)",sep="")),sep="") 
+2

Intendevi scrivere 'assay' e quindi 'assay1'? –

+0

Sì, mi dispiace. L'ho riparato. Copiato dal mio codice un po 'veloce. – dayne

risposta

30

Si vuole una combinazione di bquote() e un po 'di plotmath fu:

assay <- "Some Assay" 
xlab <- bquote(.(assay) ~ AC50 ~ (mu*M)) 
plot(0, xlab = xlab) 

Il ~ è un operatore di spaziatura e * mezzi giustapporre i contenuti a sinistra e destra dell'operatore. In bquote(), qualsiasi oggetto racchiuso in .() verrà cercato e sostituito con il valore dell'oggetto denominato; quindi .(assay) verrà sostituito nell'espressione con Some Assay.

+0

Funziona perfettamente, grazie! – dayne

+0

Wow! Grazie! – Anthony

2

Si potrebbe anche provare l'approccio del povero:

assay <- "Some Assay" 
plot(0, xlab = paste0(assay, " AC50 (µM)")) 

Si specifica il carattere mu direttamente invece di usare espressioni (e paste0 è solo paste con sep = "").

2

un'altra opzione utilizzando mtext e bquote

plot(0,xlab='') 
Lines <- list(bquote(paste(assay," AC50 (",mu,"M)",sep=""))) 
mtext(do.call(expression, Lines),side=1,line=3) 

Nota che ho impostato il XLAB a null nella prima trama.

EDIT Non c'è bisogno di chiamare espressione, poiché bquote creerà un'espressione con sostituzione di elementi avvolti a.() Dal loro valore. Quindi una buona risposta è:

plot(0,xlab='') 
Lines <- bquote(paste(.(assay)," AC50 (",mu,"M)",sep="")) 
mtext(Lines,side=1,line=3) 
+1

Che sconfigge il punto di 'bquote()' che è quello di formare un'espressione con la sostituzione di elementi racchiusi in '.()' Dal loro valore. –

+0

@GavinSimpson Grazie, ho capito. Ora sembra migliore? – agstudy

Problemi correlati