[R] Crosstab with Average and Count

John Kane jrkrideau at inbox.com
Fri Jul 20 15:24:43 CEST 2012


Not quite what you asked for but would this do?

library(plyr)
x <- as.factor(c(1,1,1,2,2,2,3,3,3))
y <- as.factor(c(10,10,10,20,20,20,30,30,30))
z <- c(100,100,NA,200,200,200,300,300,300)
df1  <-  data.frame(x, y, z)

(dsum <- ddply(df1, .(x, y), summarise, sum = sum(z, na.rm = TRUE), 
                    mean = mean(z, na.rm = TRUE), count = length(z)))




John Kane
Kingston ON Canada


> -----Original Message-----
> From: vioravis at gmail.com
> Sent: Fri, 20 Jul 2012 03:30:16 -0700 (PDT)
> To: r-help at r-project.org
> Subject: [R] Crosstab with Average and Count
> 
> I have the following data:
> 
> x <- as.factor(c(1,1,1,2,2,2,3,3,3))
> y <- as.factor(c(10,10,10,20,20,20,30,30,30))
> z <- c(100,100,NA,200,200,200,300,300,300)
> 
> I could create the cross tab of x and y with Sum of z as its elements
> using
> the xtabs function as follows:
> 
> # X Vs. Y with Sum Z
> 
> xtabs(z ~ x + y)
> 
>    y
> x    10  20  30
>   1 200   0   0
>   2   0 600   0
>   3   0   0 900
> 
> How do I replace the sum with average and count so that I can get the
> following outputs??
> 
> # X Vs. Y with Average of Z
>    y
> x      10  20  30
>   1    100 0   0
>   2    0   200 0
>   3    0   0   300
> 
> # X Vs. Y with Count Z
>   y
> x    10  20  30
>  1    2   0   0
>  2    0   3   0
>  3    0   0   3
> 
> Would appreciate any help on these? Thank you.
> 
> Ravi
> 
> 
> 
> 
> 
> --
> View this message in context:
> http://r.789695.n4.nabble.com/Crosstab-with-Average-and-Count-tp4637180.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> R-help at 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.

____________________________________________________________
GET FREE SMILEYS FOR YOUR IM & EMAIL - Learn more at http://www.inbox.com/smileys
Works with AIM®, MSN® Messenger, Yahoo!® Messenger, ICQ®, Google Talk™ and most webmails



More information about the R-help mailing list