An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130625/401ff87f/attachment.pl>
Calculate geometric mean with tapply
7 messages · Shane Carey, Rui Barradas, PIKAL Petr +1 more
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
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130625/3a538249/attachment.pl>
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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130625/941923cd/attachment.pl>
May be this also works: ?exp(mean(log(abs(x)))) #[1] 0.4985282 A.K. ----- Original Message ----- From: PIKAL Petr <petr.pikal at precheza.cz> To: Shane Carey <careyshan at gmail.com> Cc: "r-help at r-project.org" <r-help at r-project.org> Sent: Tuesday, June 25, 2013 8:50 AM Subject: Re: [R] Calculate geometric mean with tapply 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.
______________________________________________ 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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130625/9b8658bd/attachment.pl>