Cara menghitung statistik ringkasan berdasarkan grup di r
Ada dua cara dasar untuk menghitung statistik ringkasan grup di R:
Metode 1: Gunakan tapply() dari Basis R
tapply(df$value_col, df$group_col, summary)
Metode 2: Gunakan group_by() dari paket dplyr
library (dplyr)
df %>%
group_by (group_col) %>%
summarize (min = min(value_col),
q1 = quantile(value_col, 0.25 ),
median = median(value_col),
mean = mean(value_col),
q3 = quantile(value_col, 0.75 ),
max = max(value_col))
Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.
Metode 1: Gunakan tapply() dari Basis R
Kode berikut menunjukkan cara menggunakan fungsi tapply() di R untuk menghitung statistik ringkasan berdasarkan grup:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(99, 68, 86, 88, 95, 74, 78, 93),
assists=c(22, 28, 31, 35, 34, 45, 28, 31),
rebounds=c(30, 28, 24, 24, 30, 36, 30, 29))
#calculate summary statistics of 'points' grouped by 'team'
tapply(df$points, df$team, summary)
$A
Min. 1st Qu. Median Mean 3rd Qu. Max.
68.00 81.50 87.00 85.25 90.75 99.00
$B
Min. 1st Qu. Median Mean 3rd Qu. Max.
74.0 77.0 85.5 85.0 93.5 95.0
Metode 2: Gunakan group_by() dari paket dplyr
Kode berikut menunjukkan cara menggunakan fungsi group_by() dan ringkasan() dalam paket dplyr untuk menghitung statistik ringkasan berdasarkan grup:
library (dplyr)
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(99, 68, 86, 88, 95, 74, 78, 93),
assists=c(22, 28, 31, 35, 34, 45, 28, 31),
rebounds=c(30, 28, 24, 24, 30, 36, 30, 29))
#calculate summary statistics of 'points' grouped by 'team'
df %>%
group_by (team) %>%
summarize (min = min(points),
q1 = quantile(points, 0.25 ),
median = median(points),
mean = mean(points),
q3 = quantile(points, 0.75 ),
max = max(points))
# A tibble: 2 x 7
team min q1 median mean q3 max
1 A 68 81.5 87 85.2 90.8 99
2 B 74 77 85.5 85 93.5 95
Perhatikan bahwa kedua metode memberikan hasil yang persis sama.
Perlu dicatat bahwa pendekatan dplyr kemungkinan akan lebih cepat untuk frame data yang lebih besar, namun kedua metode akan bekerja sama pada frame data yang lebih kecil.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan fungsi pengelompokan umum lainnya di R:
Cara membuat tabel frekuensi berdasarkan grup di R
Cara menghitung jumlah berdasarkan kelompok di R
Cara menghitung mean per grup di R
Cara menghitung jumlah berdasarkan kelompok di R