[R] aggregate()?

John Kane jrkrideau at inbox.com
Sun Feb 2 15:02:47 CET 2014


Not exactly the order you specified but otherwise I think this works.

library(plyr)
d <- data.frame(Stock, Soil, Nitrogen, Respiration)
ddply(d, .(Soil, Stock), summarize, mean(Nitrogen), mean(Respiration))

John Kane
Kingston ON Canada


> -----Original Message-----
> From: aguitatierra at hotmail.com
> Sent: Sun, 2 Feb 2014 13:32:57 +0100
> To: r-help at r-project.org
> Subject: [R] aggregate()?
> 
> Hi all,
> 
> I'm trying to compute a mean on my data but I'm struggling with 2
> things: 1. getting the right layout and 2. including the missing values
> in the outcome.
> 
> #Input data:
> Stock <- c("A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B")
> Soil <- c("Blank", "Blank", "Control", "Control", "Clay", "Clay",
> "Blank", "Blank", "Control", "Control", "Clay", "Clay")
> Nitrogen <- c(NA, NA, 0, 0, 20, 20, NA, NA, 0, 0, 20, 20)
> Respiration <- c(112, 113, 124, 126, 139, 137, 109, 111, 122, 124, 134,
> 136)
> d <- as.data.frame(cbind(Stock, Soil, Nitrogen, Respiration))
> 
> #Outcome I'd like to get:
> Stockr <- c("A", "A", "A", "B", "B", "B")
> Soilr <- c("Blank", "Control", "Clay", "Blank", "Control", "Clay")
> Nitrogenr <- c(NA, 0, 20, NA, 0, 20)
> Respirationr <- c(111, 125, 138, 110, 123, 135)
> result <- as.data.frame(cbind(Stockr, Soilr, Nitrogenr, Respirationr))
> 
> Many thanks in advance for your help!
> 
> Cheers,
> 
> Bea
> 
> ______________________________________________
> 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