[R] aggregate function

From: Luis Rideau Cruz <Luisr_at_frs.fo>
Date: Mon 26 Jul 2004 - 22:52:14 EST


Hi all,
I have the folowing frame(there are more columns than shown),

   1              2           3        4           5     
Year         Total      Tus    Whi      Norw
1994         1.00      1830       0      355 
1995         1.00         0       0        0 
1995         1.00         0       0        0 
1995         1.00      4910    4280      695 
1997         1.00         0       0      110 
1997         0.58         0       0        0 
1997         1.00         0       0        0 
1994         1.00         0       0        0 
1997         1.00         0      40       70 
1998         1.00         0       0     1252 
1999         1.04         0      74        0 
1999         1.00         0       0        0 
1999         1.02         0       0        0 
1999         1.00         0       0        0 
1999         1.00         0       0      171 
1999         1.00      1794       0      229 
1999         1.00         0    3525        0 
1997         1.00      1335    1185      147 
1997         1.00      4925    1057     4801 
1997         1.00         0    6275     1773 

I try to get sum("Total") by "Year" in which Tus>0, sum("Total") by "Year" in which Whi>0,,,and so on.

I have done something like this;

a<-as.list(numeric(3))
for (i in 3:5)
{
a[[i]]<-aggregate(frame[,"Total"],list(Year=frame$"Year",

                                                   Tus=frame$"i">0),sum)
}

But I get

 "Error in FUN(X[[as.integer(1)]], ...) : arguments must have same length"

Also by doing one by one

aggregate(frame[,"Total"],list(Year=frame$"Year",

                                                   Tus=frame$"Tus">0),sum)


The result is something like;

   Year Tus x

 1994 FALSE 49.69
 1995 FALSE 49.35
 1996 FALSE 56.95
 1997 FALSE 57.00
 1998 FALSE 57.00
 1999 FALSE 58.09
 2000 FALSE 56.97
 2001 FALSE 57.95
 2002 FALSE 57.10
 2003 FALSE 56.16
 2000  TRUE  1.00
 2002  TRUE  1.00
 2003  TRUE  2.01


Help

Thank you

Luis Ridao Cruz
Fiskirannsóknarstovan
Nóatún 1
P.O. Box 3051
FR-110 Tórshavn
Faroe Islands
Phone: +298 353900
Phone(direct): +298 353912

Mobile:             +298 580800
Fax:                 +298 353901
E-mail:              luisr@frs.fo
Web:                www.frs.fo

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Mon Jul 26 22:59:12 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 02:38:28 EST