[R] Newbie: how to get unique x unique x aggregate chart?

Gabor Grothendieck ggrothendieck at gmail.com
Wed Nov 15 21:16:46 CET 2006


Marc's solution looks a bit easier but here are a few more anyways:

# 1
reshape(DF, dir = "wide", timevar = "Gender", idvar = "Major")

# 2
library(reshape)
DFm <- melt(DF, id = 1:2)
cast(DFm, Major ~ Gender, fun = mean)

On 11/15/06, Christian Convey <christian.convey at gmail.com> wrote:
> Thanks, let me try to clarify my question with an example.
>
> Suppose I have the following data:
>
> Gender,   Major,  Course-Grade
> F, Psy, 3.5
> F, Psy, 3.1
> M, Hst, 3.7
> F,  Hst,  3.6
> M, Hst,  2.6
> M, Eng, 3.9
>
> I want to compute a table like the following:
>
> X-axis: Gender
> Y-axis: Major
> Cell(x,y) = mean course-grade
>
> So for example, with the data above:
>
>          F     M
> ------------------------
> Psy |   3.3    NA
> Hst |   3.6    3.15
> Eng |  NA    3.9
>
> If I were doing this in SQL I'd do it with a cross-tab query.  But the world
> of R still has much unfamiliar terrain :)
>
> Thanks,
> Christian
>
>
> On 11/15/06, Jeffrey Robert Spies <jspies at nd.edu> wrote:
> >
> > I'm not sure I understand the question, but you might look into the
> > following functions:
> >
> > unique
> > heatmap
> > image
> >
> > Again, if I understand the question, you would create a length(unique
> > (x)) by length(unique(y)) sized matrix, and fill it with appropriate
> > values of z.  Then pass that to heatmap or image.
> >
> > Hope that helps--feel free to tell me if I've answered  the wrong
> > question,
> >
> > Jeff.
> >
> > On Nov 15, 2006, at 8:30 AM, Christian Convey wrote:
> >
> > > I'm very new to R, so please forgive me if I just missed the answer in
> > > existing documentation...
> > >
> > > I have a data set with at least three columns, X, Y, and Z.
> > >
> > > I want to produce a chart where one axis shows all the unique
> > > values of X,
> > > and the other axis shows all the unique values of Y.  Each cell
> > > within the
> > > chart should contain the result of applying an aggregate function
> > > (such as
> > > mean(), for example) to Z value of those rows that are associated
> > > with that
> > > cell (via their X and Y values).
> > >
> > > Can someone recommend a good way to do this?
> > >
> > > Thanks very much,
> > > Christian
> > >
> > >       [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch 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 at stat.math.ethz.ch 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.
>



More information about the R-help mailing list