Cara membentuk ulang data antara format lebar dan panjang di r


Bingkai data di R dapat ditampilkan dalam format lebar atau panjang .

Bergantung pada tujuan Anda, Anda mungkin ingin bingkai data berada dalam salah satu format spesifik berikut.

Cara termudah untuk membentuk ulang data antara format ini adalah dengan menggunakan dua fungsi berikut dari paket Tidyr di R:

  • pivot_longer() : membentuk ulang blok data dari format lebar ke format panjang.
  • pivot_wider() : membentuk ulang blok data dari format panjang ke format lebar.

Contoh berikut menunjukkan cara menggunakan setiap fungsi dalam praktik.

Contoh 1: Membentuk Ulang Data dari Lebar ke Panjang

Misalkan kita memiliki bingkai data berikut di R yang saat ini dalam format lebar:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D'),
                 year1=c(12, 15, 19, 19),
                 year2=c(22, 29, 18, 12))

#view data frame
df

  player year1 year2
1 to 12 22
2 B 15 29
3 C 19 18
4 D 19 12

Kita dapat menggunakan fungsi pivot_longer() untuk memutar bingkai data ini ke dalam format panjang:

 library (tidyr)

#pivot the data frame into a long format
df %>% pivot_longer(cols=c(' year1 ', ' year2 '),
                    names_to=' year ',
                    values_to=' points ')

# A tibble: 8 x 3
  player year points
      
1 A year1 12
2 A year2 22
3 B year1 15
4 B year2 29
5 C year1 19
6 C year2 18
7 D year1 19
8 D year2 12

Perhatikan bahwa nama kolom tahun1 dan tahun2 sekarang digunakan sebagai nilai di kolom baru yang disebut “tahun” dan nilai dari kolom asli tersebut ditempatkan di kolom baru yang disebut “poin”.

Hasil akhirnya adalah kerangka data yang panjang.

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi pivot_longer() di sini .

Contoh 2: Membentuk Ulang Data dari Panjang ke Lebar

Misalkan kita memiliki bingkai data berikut di R yang saat ini dalam format panjang:

 #create data frame
df <- data. frame (player=rep(c('A', 'B'), each= 4 ),
                 year=rep(c(1, 1, 2, 2), times= 2 ),
                 stat=rep(c('points', 'assists'), times= 4 ),
                 amount=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4

Kita dapat menggunakan fungsi pivot_wider() untuk memutar bingkai data ini ke dalam format lebar:

 library (tidyr)

#pivot the data frame into a wide format
df %>% pivot_wider(names_from = stat, values_from = amount)

# A tibble: 4 x 4
  player year points assists
         
1 A 1 14 6
2 A 2 18 7
3 B 1 22 9
4 B 2 38 4

Perhatikan bahwa nilai di kolom stat sekarang digunakan sebagai nama kolom dan nilai di kolom jumlah digunakan sebagai nilai sel di kolom baru ini.

Hasil akhirnya adalah blok data yang besar.

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi pivot_wider() di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

Cara menghitung nilai unik berdasarkan grup di R
Cara menghitung nilai non-NA di R
Cara membuat tabel frekuensi relatif di R

Tambahkan komentar

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