Hello,

You can write a function gmean and tapply it to your data.


gmean <- function(x, na.rm = FALSE){
        if(na.rm) x <- x[!is.na(x)]
        n <- length(x)
        prod(x)^(1/n)
}

tapply(data$value, data$group, gmean)


Hope this helps,

Rui Barradas

Em 25-06-2013 11:58, Shane Carey escreveu:
Hi,

I am trying to calculate the geometric mean with tapply. This is the
formula I am using:

exp(tapply(log(data$value), data$group, mean))


However, it returns the arithmetic mean. Any ideas?


Thanks



______________________________________________
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