[R] Data manipulation
Blaser Nello
nblaser at ispm.unibe.ch
Fri Mar 15 14:27:03 CET 2013
Is this what you want to do?
D2 <- expand.grid(Class=unique(D$Class), X=unique(D$X))
D2 <- merge(D2, D, all=TRUE)
D2$Count[is.na(D2$Count)] <- 0
W <- aggregate(D2$Count, list(D2$Class, D2$X), "sum")
W
Best,
Nello
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of IOANNA
Sent: Freitag, 15. März 2013 13:41
To: r-help at r-project.org
Subject: [R] Data manipulation
Hello all,
I would appreciate your thoughts on a seemingly simple problem. I have a database, where each row represent a single record. I want to aggregate this database so I use the aggregate command :
D<-read.csv("C:\\Users\\test.csv")
attach(D)
by1<-factor(Class)
by2<-factor(X)
W<-aggregate(x=Count,by=list(by1,by2),FUN="sum")
The results I get following the form:
>W
Group.1 Group.2 x
1 1 0.1 4
2 2 0.1 7
3 3 0.1 1
4 1 0.2 3
5 3 0.2 4
6 3 0.3 4
However, what I really want is an aggregation which includes the zero values, i.e.:
>W
Group.1 Group.2 x
1 1 0.1 4
2 2 0.1 7
3 3 0.1 1
4 1 0.2 3
2 0.2 0
5 3 0.2 4
1 0.3 0
2 0.3 0
6 3 0.3 4
How can I achieve what I want?
Best regards,
Ioanna
More information about the R-help
mailing list