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
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