[R] Calculate geometric mean with tapply
PIKAL Petr
petr.pikal at precheza.cz
Tue Jun 25 14:50:04 CEST 2013
Hm
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Shane Carey
> Sent: Tuesday, June 25, 2013 1:25 PM
> To: Rui Barradas
> Cc: r-help at r-project.org
> Subject: Re: [R] Calculate geometric mean with tapply
>
> Thanks for your help, put I've tried that and it still gives me back
> the mean when I use it within tapply for some reason
can we believe it? Data, code please
> set.seed(111)
> x<-rnorm(10)
> mean(x)
[1] -0.6690135
> gmean(x)
[1] 0.4985282
> tapply(vysled$gamapoml, vysled$vzorek, mean)
vz2 vz4 vz6
341.0 343.0 332.4
> tapply(vysled$gamapoml, vysled$vzorek, gmean)
vz2 vz4 vz6
340.5418 342.6154 332.2701
>
I get different result for mean and gmean within tapply my data.
Regards
Petr
>
>
> On Tue, Jun 25, 2013 at 12:17 PM, Rui Barradas <ruipbarradas at sapo.pt>
> wrote:
>
> > 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
> >>
> >>
> >>
>
>
> --
> Shane
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
More information about the R-help
mailing list