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-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf Of IOANNA
Sent: Freitag, 15. März 2013 13:41
To: r-help@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

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to