[R] aggregate function

TEMPL Matthias Matthias.Templ at statistik.gv.at
Mon Jul 26 15:13:35 CEST 2004


Hi,
 
# x ... your frame
attach(x)
sum(Total[Year==1997 & Tus > 0])
 
I hope this helps
 
Best,
Matthias Templ
 
 
> > -----Ursprüngliche Nachricht-----
> > Von: Luis Rideau Cruz [mailto:Luisr at frs.fo]
> > Gesendet: Montag, 26. Juli 2004 14:52
> > An: r-help at stat.math.ethz.ch
> > Betreff: [R] aggregate function
> > 
> > 
> > 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 at frs.fo
> > Web:                www.frs.fo
> > 
> > ______________________________________________
> > R-help at 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
> > 
>




More information about the R-help mailing list