Re: [R] Summarize by two-column factor, retaining original factors

From: Chuck Cleland <ccleland_at_optonline.net>
Date: Sat 25 Feb 2006 - 03:41:55 EST

Matt Crawford wrote:
> I am having trouble doing the following. I have a data.frame like
> this, where x and y are a variable that I want to do calculations on:
>
> Name Year x y
> ab 2001 15 3
> ab 2001 10 2
> ab 2002 12 8
> ab 2003 7 10
> dv 2002 10 15
> dv 2002 3 2
> dv 2003 1 15
>
> Before I do all the other things I need to do with this data, I need
> to summarize or collapse the data by name and year. I've found that I
> can do things like
> nameyear<-interaction(name,year)
> dataframe$nameyear<-nameyear
> tapply(dataframe$x,dataframe$nameyear,sum)
> tapply(dataframe$y,dataframe$nameyear,sum)
> and then bind those together.
>
> But my problem is that I need to somehow retain the original Names in
> my collapsed dataset, so that later I can do analyses with the Name
> factors. All I can think of is something like
> tapply(dataframe$Name,dataframe$nameyear, somefunction?)
> but nothing seems to work.
>
> I'm actually trying to convert a SAS program, and I can't get out of
> that mindset. There, it's a simple Proc Means, By Name Year.
>
> Thanks for any help or suggestions on the right way to go about this.

mydata <- data.frame(
            Name = c("ab","ab","ab","ab","dv","dv","dv"),
            Year = c(2001,2001,2002,2003,2002,2002,2003),
               x = c(15,10,12,7,10,3,1),
               y = c(3,2,8,10,15,2,15))

aggregate(mydata[,c("x", "y")],
           list(Name = mydata$Name, Year = mydata$Year), sum)

   Name Year x y
1 ab 2001 25 5
2 ab 2002 12 8
3 dv 2002 13 17
4 ab 2003 7 10
5 dv 2003 1 15

?aggregate

-- 
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 452-1424 (M, W, F)
fax: (917) 438-0894

______________________________________________
R-help@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
Received on Sat Feb 25 03:55:34 2006

This archive was generated by hypermail 2.1.8 : Sat 25 Feb 2006 - 06:08:44 EST