[R] list problem

Dimitris Rizopoulos dimitris.rizopoulos at med.kuleuven.ac.be
Tue Jul 27 15:23:24 CEST 2004


Hi Luis,

maybe there are better ways but you could try something like this,

n <- length(frame)
lapply(split(frame, frame$Year), function(x, n.){
  res <- numeric(n.-2)
  for(i in 3:n.) res[i-2] <- sum(x$Total[x[,i]>0.])
  res
}, n.=n)

I hope this helps.

Best,
Dimitris

----
Dimitris Rizopoulos
Doctoral Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/396887
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat/
     http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm


----- Original Message ----- 
From: "Luis Rideau Cruz" <Luisr at frs.fo>
To: <r-help at stat.math.ethz.ch>
Sent: Tuesday, July 27, 2004 2:22 PM
Subject: [R] list problem


> 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)
> }
>
>
> 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
>
>
> But when I try indexing  frame["Tus"==TRUE,],,,,I just don't get it
>
> 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
>
> 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