[R] How to paste a vector of expressions and a character vector?

Marius Hofert m_hofert at web.de
Fri Apr 1 19:56:13 CEST 2011


Dear David,

thanks for your reply. The paste() meant to paste the vectors vec1 and vec2 together, so main should be a vector of length 3 of the form
"a 1", "b 2", "c 3" # with b being tilde(b)
However, with c() it is a vector of length 6:
expression("a", tilde(b), "c", "1", "2", "3")

Do you know a solution for that?

Cheers,

Marius

On 2011-04-01, at 19:22 , David Winsemius wrote:

> 
> On Apr 1, 2011, at 12:32 PM, Marius Hofert wrote:
> 
>> Dear expeRts,
>> 
>> I know I can't paste expressions in the normal way, but I just couldn't figure out
>> how to get the following (I want to paste a character vector to an expression vector)
>> right with bquote() or substitute.
>> 
>> vec1 <- c("a", expression(tilde(b)), "c")
>> vec2 <- c("1", "2", "3")
>> main <- as.expression(paste(vec1, vec2))
>> plot(0,0, main=main[2])
> 
> Do not use `paste` ... it coerces your expression to a character value ... use `c` instead:
> 
> > main <- as.expression(c(vec1, vec2))
> > plot(1,1, main=main[2])
> 
> And then, even the as.expression is superfluous:
> 
> > main <- c(vec1, vec2)
> > plot(1,1, main=main[2])
> 
> -- 
> 
> David Winsemius, MD
> West Hartford, CT
> 



More information about the R-help mailing list