Как рассчитать среднее геометрическое в R (с примерами)


Вы можете использовать следующий синтаксис для вычисления среднего геометрического набора чисел в R:

exp(mean(log(x)))

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Вычисление среднего геометрического вектора

Следующий код показывает, как вычислить среднее геометрическое для одного вектора в R:

#define vector
x <- c(4, 8, 9, 9, 12, 14, 17)

#calculate geometric mean of values in vector
exp(mean(log(x)))

[1] 9.579479

Пример 2. Вычисление среднего геометрического вектора с нулями

Если ваш вектор содержит нули или отрицательные числа, приведенная выше формула вернет 0 или NaN.

Чтобы игнорировать нули и отрицательные числа при вычислении среднего геометрического, вы можете использовать следующую формулу:

#define vector with some zeros and negative numbers
x <- c(4, 8, 9, 9, 12, 14, 17, 0, -4)

#calculate geometric mean of values in vector
exp(mean(log(x[x > 0])))

[1] 9.579479

Пример 3: вычисление среднего геометрического столбцов во фрейме данных

Следующий код показывает, как вычислить среднее геометрическое столбца во фрейме данных:

#define data frame
df <- data.frame(a=c(1, 3, 4, 6, 8, 8, 9),
 b=c(7, 8, 8, 7, 13, 14, 16),
 c=c(11, 13, 13, 18, 19, 19, 22),
 d=c(4, 8, 9, 9, 12, 14, 17))

#calculate geometric mean of values in column 'a'
exp(mean(log(df$a)))

[1] 4.567508

А следующий код показывает, как вычислить среднее геометрическое нескольких столбцов во фрейме данных:

#define data frame
df <- data.frame(a=c(1, 3, 4, 6, 8, 8, 9),
 b=c(7, 8, 8, 7, 13, 14, 16),
 c=c(11, 13, 13, 18, 19, 19, 22),
 d=c(4, 8, 9, 9, 12, 14, 17))

#calculate geometric mean of values in column 'a', 'b', and 'd'
apply(df[ , c('a', 'b', 'd')], 2, function (x) exp(mean(log(x))))

 a b d 
4.567508 9.871128 9.579479 

Дополнительные ресурсы

Как рассчитать среднее значение по группе в R
Как рассчитать средневзвешенное значение в R
Как рассчитать стандартную ошибку среднего в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.