Cara menghitung rata-rata geometris dalam r (dengan contoh)


Anda dapat menggunakan sintaks berikut untuk menghitung rata-rata geometrik sekumpulan angka di R:

 exp(mean(log(x)))

Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.

Contoh 1: Hitung mean geometrik vektor

Kode berikut menunjukkan cara menghitung rata-rata geometri suatu vektor di R:

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

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

[1] 9.579479

Contoh 2: Hitung rata-rata geometri suatu vektor yang nol

Jika vektor Anda berisi angka nol atau negatif, rumus di atas akan menghasilkan 0 atau NaN.

Untuk mengabaikan angka nol dan angka negatif saat menghitung mean geometrik, Anda dapat menggunakan rumus berikut:

 #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

Contoh 3: Hitung rata-rata geometrik kolom-kolom dalam bingkai data

Kode berikut menunjukkan cara menghitung rata-rata geometrik kolom dalam bingkai data:

 #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

Dan kode berikut menunjukkan cara menghitung rata-rata geometrik beberapa kolom dalam bingkai data:

 #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))))

       abd
4.567508 9.871128 9.579479

Sumber daya tambahan

Cara menghitung mean per grup di R
Cara menghitung rata-rata tertimbang dalam R
Cara menghitung kesalahan standar mean di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *