Dplyr: cara meringkas data tetapi mempertahankan semua kolom
Saat menggunakan fungsi summarise() di dplyr , variabel apa pun yang tidak termasuk dalam fungsi summarise() atau group_by() akan dihapus secara otomatis.
Namun, Anda bisa menggunakan fungsi mutate() untuk meringkas data sambil mempertahankan semua kolom dalam bingkai data.
Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.
Contoh: Ringkas data tetapi pertahankan semua kolom menggunakan dplyr
Misalkan kita mempunyai kerangka data berikut yang berisi informasi tentang berbagai pemain bola basket:
#create data frame df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ), points=c(4, 9, 8, 12, 15, 14, 29, 30, 22), assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12)) #view data frame df team points assists 1 to 4 3 2 to 9 3 3 to 8 2 4 B 12 5 5 B 15 8 6 B 14 10 7 C 29 4 8 C 30 5 9 C 22 12
Kita dapat menggunakan sintaks berikut untuk merangkum rata-rata poin yang dicetak per tim :
library (dplyr) #summarize mean points values by team df %>% group_by(team) %>% summarize(mean_pts = mean(points)) # A tibble: 3 x 2 team mean_pts 1 to 7 2 B 13.7 3 C 27
Kolom bernama Mean_pts menampilkan rata-rata poin yang dicetak oleh masing-masing tim.
Dari hasilnya kita dapat melihat:
- Rata-rata poin yang dicetak pemain tim A adalah 7 .
- Rata-rata poin yang dicetak pemain tim B adalah 13,7 .
- Rata-rata poin yang dicetak pemain tim C adalah 27 .
Namun, katakanlah kita ingin mempertahankan semua kolom lainnya dari bingkai data asli.
Kita dapat menggunakan sintaks berikut dengan fungsi mutate() untuk melakukan ini:
library (dplyr) #summarize mean points values by team and keep all columns df %>% group_by(team) %>% mutate(mean_pts = mean(points)) %>% A group() # A tibble: 9 x 4 team points assists mean_pts 1 to 4 3 7 2 to 9 3 7 3 to 8 2 7 4 B 12 5 13.7 5 B 15 8 13.7 6 B 14 10 13.7 7 C 29 4 27 8 C 30 5 27 9 C 22 12 27
Dengan menggunakan fungsi mutate() , kita dapat membuat kolom baru bernama Mean_pts yang merangkum rata-rata poin yang dicetak per tim sambil mempertahankan semua kolom lain dari bingkai data asli.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di dplyr:
dplyr: Cara memutasi variabel jika kolom berisi string
dplyr: Cara mengubah level faktor menggunakan mutate()
dplyr: Cara menambahkan beberapa kolom