Calculates the geometric mean or standard deviation of a vector of numeric values.
geomean(x, na.rm = FALSE, zneg.rm = FALSE)geosd(x, na.rm = FALSE, zneg.rm = FALSE)
Vector of numeric values.
Logical indicating whether to remove missing values or not.
Logical indicating whether to ignore or remove zero or negative values found in x
.
A numeric value that is the geometric mean or geometric standard deviation of the numeric values in x
.
The geometric mean is computed by log transforming the raw data in x
, computing the arithmetic mean of the transformed data, and back-transforming this mean to the geometric mean by exponentiating.
The geometric standard deviation is computed by log transforming the raw data in x
, computing the arithmetic standard deviation of the transformed data, and back-transforming this standard deviation to the geometric standard deviation by exponentiating.
See geometric.mean
in psych and Gmean
for geometric mean calculators. See Gsd
for geometric standard deviation calculators.
# NOT RUN {
## generate random lognormal data
d <- rlnorm(500,meanlog=0,sdlog=1)
# d has a mean on log scale of 0; thus, gm should be exp(0)~=1
# d has a sd on log scale of 1; thus, gsd should be exp(1)~=2.7
geomean(d)
geosd(d)
## Demonstrate handling of zeros and negative values
x <- seq(0,5)
# this will given an error
try(geomean(x))
# this will only give a warning, but might not be what you want
geomean(x,zneg.rm=TRUE)
# }
Run the code above in your browser using DataLab