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

Tambahkan komentar

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