[R] ggplot2 argument handling odd

Sebastian Weber sebastian.weber at physik.tu-darmstadt.de
Mon Mar 31 09:36:24 CEST 2008


Hi Hadley,

I tried today your solution to this problem. However, the finally
working code was like

eval(substitute(ggplot( aes_string(...) ))

The qplot code below did not work at all, neither works a 

ggplot(aes_string(...))

BTW: Since I am always writing scripts to produce my plots, how can I
split accross multiple lines one command in a R-script? These ggplot
commands can become rather long and the syntax

pl <- ggplot( ........... long expression ................. )
pl <- pl + some_layer( ........... )

is not very intuituve. So, how do I break lines in R-Scripts.

These questions must sound like beginner questions - but I have searched
archives and documentation without success. As we speak of it - is your
book finally out?

Greetings,

Sebastian Weber

On Thu, 2008-03-27 at 07:57 -0500, hadley wickham wrote:
> >  Ok, I will try that, thanks. BTW, where is this aes_string option
> >  documented, sounds useful? How could I do the same thing with facetting?
> >  If I want to save something like ". ~ groupVar" as a string in a
> >  variable, could I pass it with facet_string to ggplot?
> 
> It's a see also from ?aes (or at least it is in the development
> version).  facet_grid should already accept a string instead of a
> function, so it should just work.
> 
> >  But anyway, I would be curious how to do it with qplot. The basic
> >  question is: How to pass the string of a variable to a function which is
> >  supposed to interpret it. Aka:
> >
> >  var <- "magicVar"
> >
> >  fun(doSomeMagic(var))
> >
> >  doSomeMagic should then write magicVar at the place.
> 
> In general, you can use as.name, substitute and eval:
> 
> x <- as.name("mpg")
> y <- as.name("wt")
> 
> eval(substitute(qplot(x, y, data=mtcars), list(x=x, y=y)))
> 
> Hadley
>



More information about the R-help mailing list