Cara meringkas beberapa kolom menggunakan dplyr


Anda dapat menggunakan metode berikut untuk meringkas beberapa kolom dalam bingkai data menggunakan dplyr:

Metode 1: Ringkas semua kolom

 #summarize mean of all columns
df %>%
  group_by(group_var) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

Metode 2: Ringkas Kolom Tertentu

 #summarize mean of col1 and col2 only
df %>%
  group_by(group_var) %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

Metode 3: Ringkas Semua Kolom Numerik

 #summarize mean and standard deviation of all numeric columns
df %>%
  group_by(group_var) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

Contoh berikut menunjukkan cara menggunakan setiap metode dengan kerangka data berikut:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 86, 88, 95, 90),
                 assists=c(33, 28, 31, 39, 34, 25),
                 rebounds=c(NA, 28, 24, 24, 28, 19))

#view data frame
df

  team points assists rebounds
1 A 99 33 NA
2 A 90 28 28
3 A 86 31 24
4 B 88 39 24
5 B 95 34 28
6 B 90 25 19

Contoh 1: Ringkas semua kolom

Kode berikut menunjukkan cara merangkum rata-rata semua kolom:

 library (dplyr)

#summarize mean of all columns, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

# A tibble: 2 x 4
  team points assists rebounds
           
1 A 91.7 30.7 26  
2 B 91 32.7 23.7

Contoh 2: Ringkas kolom tertentu

Kode berikut menunjukkan cara merangkum rata-rata kolom poin dan rebound saja:

 library (dplyr)

#summarize mean of points and rebounds, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

# A tibble: 2 x 3
  team points rebounds
        
1 A 91.7 26  
2 B 91 23.7

Contoh 3: Ringkaslah semua kolom numerik

Kode berikut menunjukkan cara merangkum mean dan deviasi standar semua kolom numerik dalam bingkai data:

 library (dplyr)

#summarize mean and standard deviation of all numeric columns
df %>%
  group_by(team) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

# A tibble: 2 x 7
  team points_mean points_sd assists_mean assists_sd rebounds_mean rebounds_sd
                                            
1 A 91.7 6.66 30.7 2.52 26 2.83
2 B 91 3.61 32.7 7.09 23.7 4.51

Outputnya menampilkan mean dan deviasi standar semua variabel numerik dalam bingkai data.

Perhatikan bahwa dalam contoh ini kami menggunakan fungsi list() untuk mencantumkan beberapa ringkasan statistik yang ingin kami hitung.

Catatan : Dalam setiap contoh, kami menggunakan fungsi dplyrcross() . Anda dapat menemukan dokumentasi lengkap untuk fungsi ini di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan fungsi umum lainnya menggunakan dplyr:

Cara menghapus baris menggunakan dplyr
Cara menyusun baris menggunakan dplyr
Cara memfilter berdasarkan beberapa kondisi menggunakan dplyr

Tambahkan komentar

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