Cara membuat crosstab menggunakan dplyr (dengan contoh)
Anda dapat menggunakan sintaks dasar berikut untuk membuat tab silang menggunakan fungsi dari paket dplyr dan Tidyr di R:
df %>% group_by (var1, v ar2) %>% tally () %>% spread (var1,n)
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh 1: Buat Tab Silang Dasar
Misalkan kita memiliki bingkai data berikut di R:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'), dots=c(7, 7, 8, 11, 13, 15, 19, 13)) #view data frame df team position points 1 AG 7 2 AG 7 3AF 8 4 AC 11 5 BG 13 6 BF 15 7 BF 19 8 BC 13
Kita dapat menggunakan sintaks berikut untuk membuat tab silang untuk variabel “tim” dan “posisi”:
library (dplyr) library (tidyr) #produce crosstab df %>% group_by (team, position) %>% tally () %>% spread (team, n) # A tibble: 3 x 3 position AB 1 C 1 1 2 F 1 2 3 G 2 1
Berikut cara menafsirkan nilai tab silang:
- Terdapat 1 pemain yang menempati posisi “C” dan tergabung dalam tim “A”
- Terdapat 1 pemain yang menempati posisi “C” dan tergabung dalam tim “B”
- Terdapat 1 pemain yang menempati posisi “F” dan tergabung dalam tim “A”
- Ada 2 pemain yang mempunyai posisi “F” dan tergabung dalam tim “B”
- Ada 2 pemain yang berposisi “G” dan tergabung dalam tim “A”
- Ada 1 pemain yang menempati posisi “G” dan tergabung dalam tim “B”
Perhatikan bahwa kita dapat mengubah baris dan kolom tab silang dengan mengubah variabel yang digunakan dalam fungsi spread() :
library (dplyr) library (tidyr) #produce crosstab with 'position' along columns df %>% group_by (team, position) %>% tally () %>% spread (position, n) # A tibble: 2 x 4 # Groups: team [2] team CFG 1 A 1 1 2 2 B 1 2 1
Terkait: Cara menggunakan fitur Spread di Tidyr
Sumber daya tambahan
Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di dplyr:
Cara menghitung frekuensi relatif menggunakan dplyr
Cara memilih kolom berdasarkan indeks menggunakan dplyr
Cara menghapus baris menggunakan dplyr