I thank you all for the insightful answers. I'm quite a rookie in R and have
built a code that didn't take data frames into account. But I suppose I'm
now convinced that they're actually a practical structure for organizing the
data... so I'll adhere to the Data Frame Club soon enough.

Best regards,

Eduardo Horta

On Wed, Jan 5, 2011 at 11:01 AM, Dennis Murphy <djmu...@gmail.com> wrote:

> It was gently suggested to me in a private message that to achieve
> *complete* control over the inputs and outputs in R graphics one should be
> using grid graphics. I concur with that suggestion and wish to amend my
> previous statement accordingly.
>
> With kindest thanks,
> Dennis
>
> On Wed, Jan 5, 2011 at 3:02 AM, Dennis Murphy <djmu...@gmail.com> wrote:
>
> > Hi Bert:
> >
> > On Tue, Jan 4, 2011 at 8:39 PM, Bert Gunter <gunter.ber...@gene.com
> >wrote:
> >
> >> Dennis:
> >>
> >> Can't speak to ggplot2, but your comments regarding lattice are not
> >> quite correct. Many if not all of lattice's basic plot functions are
> >> generic, which means that one has essentially complete latitude to
> >> define plotting methods for arbitrary data structures. For example,
> >> there is an xyplot.ts method for time series -- class ts -- data.
> >>
> >> Of course, for most lattice methods, the data do naturally come in a
> >> data frame, and a standard lattice argument is to give a frame from
> >> which to pull the data. But this is not required.
> >>
> >> I'm aware of that, but thank you for clarifying matters. I didn't state
> > explicitly whether lattice required data frame input or not (my lattice
> > example indicated no and indeed it does not), but the message was
> evidently
> > muddled further down the post. Your comments speak to some of the
> > differences in the design and philosophy of lattice and ggplot2, and I
> have
> > no disagreement with your remarks about lattice.
> >
> > The point I was trying to make was that by using data frames and the
> > several packages/base functions that support their manipulation, one can
> > simplify the coding of graphics within both ggplot2 and lattice. There
> are
> > many things one can do with data frames that one cannot with vectors, as
> you
> > well know - e.g., extensions with new data (rbind) or new variables
> > (cbind/transform, etc.), or reshaping, among others.  These features can
> be
> > used to advantage in both ggplot2 and lattice. The OP's example is a
> simple
> > one - had he used
> >
> > df <- data.frame(x = sqrt(1:10), y = log(1:10))     # oops, forgot
> 1:10...
> >
> > qplot(as.numeric(rownames(df)), x, data = df, geom = 'line', colour =
> > I('darkgreen'))   # ...but it's OK
> > # or
> > xyplot(x ~ as.numeric(rownames(x)), data = df, type = 'l', col.line =
> > 'darkgreen')
> >
> > there would have been no problem. A little inconvenient for a new user,
> > maybe, but hardly 'very restrictive'.
> >
> >
> > As for other types of R data objects that are not data frames, offhand I
> > can't think of too many that are incapable of being converted to data
> frames
> > somehow for the purposes of graphics, although I wouldn't be remotely
> > surprised if some existed. [For example, one can extract fitted values,
> > residuals and perhaps a model matrix from a model object and place the
> > results in a data frame.] ggplot2 has a fortify() method to allow one to
> > transform data objects for use in the package. There is some discussion
> in
> > Chapter 9 of Hadley's book, but I'm not in a position to add insight as I
> > haven't used it personally.
> >
> > I do think this is a fair statement, though, and it's been said before:
> if
> > one wants *complete* control and flexibility of inputs and outputs, use
> base
> > graphics. Both lattice and ggplot2, by virtue of being structured
> graphics
> > systems, impose certain constraints (e.g., default actions) on the user
> > which are system-dependent. Prof. Vardeman's quote still applies :)
> >
> > Dennis
> >
> >
> >
> >
> > -- Bert
> >>
> >> >
> >> > Please explain to me how
> >> >
> >> > df <- data.frame(x, y, index = 1:10)
> >> > qplot(index, x, geom = 'line', ...)
> >> >
> >> > is 'very restrictive'. Lattice and ggplot2 are *structured* graphics
> >> systems
> >> > - to get the gains that they provide, there are some costs. I don't
> >> perceive
> >> > organization of data into a data frame as being restrictive - in fact,
> >> if
> >> > you learn how to construct data for input into ggplot2 to simplify the
> >> code
> >> > for labeling variables and legends, the data frame requirement is
> >> actually a
> >> > benefit rather than a restriction. Moreover, one can use the plyr and
> >> > reshape(2) packages to reshape or condense data frames to provide even
> >> more
> >> > flexibility and freedom to produce ggplot2 and lattice graphics. In
> >> > addition, the documentation for ggplot2 is quite explicit about
> >> requiring
> >> > data frames for input, so it is behaving as documented. The complexity
> >> (and
> >> > interaction) of the graphics code probably has something to do with
> >> that.
> >> >
> >> > Since Josh left you a quote, I'll supply another, from Prof. Steve
> >> Vardeman
> >> > in a class I took with him a long time ago:
> >> > "There is no free lunch in statistics: in order to get something,
> you've
> >> got
> >> > to give something up."
> >> >
> >> > In this case, if you want the nice infrastructure provided by ggplot2,
> >> you
> >> > have to create a data frame for input.
> >> >
> >> > Dennis
> >> >
> >> >>
> >> >> Thanks in advance, and best regards!
> >> >>
> >> >> Eduardo Horta
> >> >>
> >> >>        [[alternative HTML version deleted]]
> >> >>
> >> >> ______________________________________________
> >> >> R-help@r-project.org mailing list
> >> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> >> PLEASE do read the posting guide
> >> >> http://www.R-project.org/posting-guide.html
> >> >> and provide commented, minimal, self-contained, reproducible code.
> >> >>
> >> >
> >> >        [[alternative HTML version deleted]]
> >> >
> >> > ______________________________________________
> >> > R-help@r-project.org mailing list
> >> > https://stat.ethz.ch/mailman/listinfo/r-help
> >> > PLEASE do read the posting guide
> >> http://www.R-project.org/posting-guide.html
> >> > and provide commented, minimal, self-contained, reproducible code.
> >> >
> >>
> >>
> >>
> >> --
> >> Bert Gunter
> >> Genentech Nonclinical Biostatistics
> >>
> >
> >
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to