Cara Transpose DataFrame di R

Cara Transpose Dataframe Di R



Mentranspos dataset adalah salah satu operasi yang mereformasi data untuk memenuhi persyaratan analisis tertentu. Transpos dataset melibatkan baris dan kolom terbalik dari dataset, menghasilkan dataset baru dengan kolom dan baris yang dialihkan. R menyediakan beberapa fungsi untuk mengubah urutan dataset. Pada artikel ini, kami akan membahas berbagai metode transposing untuk DataFrames di R.

Contoh 1: Transpose DataFrame Menggunakan Fungsi T() di R

Fungsi t() adalah fungsi bawaan dari R yang digunakan untuk mengubah urutan DataFrame. Namun, itu mengubah DataFrame menjadi matriks, sehingga setiap kolom non-numerik diubah menjadi string karakter. Pertimbangkan skrip R berikut untuk mengubah urutan DataFrame:







DataKu = data.frame(c1 = c(1, 2, 3, 4, 5),

c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))

baris.nama(DataSaya) = c('r1', 'r2', 'r3', 'r4', 'r5')

t(DataSaya)

Di sini, kami mendeklarasikan vektor MyData dan menetapkan data.frame() padanya. Kami memasukkan data sampel yang berisi tiga kolom dengan nilai di dalam fungsi data.frame() . Setelah itu, kami menggunakan fungsi 'row.names()' dan menetapkan nama baris untuk nilai DataFrame 'DataSaya'. Terakhir, kami mentranspos DataFrame 'MyData' menggunakan fungsi t().



Keluaran berikut menunjukkan transposisi DataFrame di mana nama baris dari DataFrame asli menjadi nama kolom dari DataFrame yang ditransposisikan, dan nama kolom dari DataFrame asli hilang dalam transposisi:







Contoh 2: Transpose DataFrame Menggunakan Fungsi Transpose() di R

Fungsi transpose() dari paket “data.table” juga dapat digunakan untuk mengubah urutan DataFrame dan mengembalikan DataFrame. Oleh karena itu, kita harus memastikan bahwa “data.table” terinstal di R. Jika tidak ditemukan maka kita dapat menginstalnya dengan perintah berikut:

instal.paket('data.tabel')

Sekarang, kita dapat dengan mudah mengimpor paket “data.table” untuk mengakses fungsi transpose() di R untuk mengubah urutan DataFrame. Pertimbangkan kode R berikut di mana fungsi transpose() dipanggil untuk mengubah urutan DataFrame:



df <- data.frame(A = c(1:5),

B = c(6:10),
C = c(11:15))


baris.nama(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Di sini, kami membuat DataFrame 'df' dengan tiga kolom dan lima baris di mana setiap kolom berisi urutan angka dari 1 hingga 5, 6 hingga 10, dan 11 hingga 15. Selain itu, kami menetapkan nama baris DataFrame menggunakan fungsi row.names() . Setelah itu, kami mencetak DataFrame asli ke konsol.

DataFrame asli ditampilkan di layar di sini:

Selanjutnya, kami mentranspos DataFrame 'df' asli dengan mengganti baris dan kolom DataFrame.

perpustakaan(data.tabel)

df_trans <- transpose(df)

nama baris(df_trans) <- nama col(df)

colnames(df_trans) <- namabaris(df)

df_trans

Untuk ini, pertama-tama kita memuat pustaka “data.table” yang menyediakan alat untuk bekerja dengan data tabular di R. Kemudian, fungsi transpose() digunakan dari pustaka “data.table”. DataFrame yang dialihkan yang dihasilkan ditugaskan ke variabel baru yaitu 'df_t'. Setelah itu, kami menetapkan nama kolom dari DataFrame 'df' asli sebagai nama baris ke DataFrame 'df_trans' yang ditransposisi menggunakan fungsi rownames() . Kemudian, nama baris DataFrame “df” asli ditetapkan sebagai nama kolom ke DataFrame “df_trans” yang ditransposisi menggunakan fungsi colnames().

Dengan demikian, transposisi DataFrame asli dicapai dalam output. Ini mewakili setiap sel dalam DataFrame yang ditransposisi di mana ia berisi nilai yang sama dengan sel yang sesuai dalam DataFrame asli tetapi dalam posisi yang berbeda karena transposisi.

Contoh 3: Transpose DataFrame Menggunakan Fungsi Tidyr Library Gather() di R

Paket R yang lebih rapi dapat digunakan untuk mengubah urutan DataFrame. Metode ini berguna saat kita ingin mengonversi DataFrame dari format lebar ke panjang, lalu kembali ke format lebar dengan menukar baris dan kolom. Ini menyediakan beberapa fungsi untuk mengubah dan mengatur ulang data. Sebelumnya, kita perlu mengunduh paket tidir secara khusus menggunakan perintah berikut:

instal.paket('rapi')

Mari pertimbangkan kode R berikut. Kami menggunakan fungsi collect() dari paket ini untuk mengubah urutan DataFrame lebar lebih lama:

perpustakaan (rapi)

n = 10

rapi_df = data.frame(

ID = c(1:n),
Nilai_Ujian1 = c(73, 219, 86, 192, 99,
188, 72, 35, 91, 165),
Tanda_Ujian2 = c(217, 89, 66, 334, 99,
101, 108, 233, 45, 300),
Ujian3_Tanda = c(39, 101, 209, 289, 176,
120, 89, 119, 199, 96))

rapi_df

Di sini, DataFrame 'lebar' diubah menjadi DataFrame 'panjang' menggunakan rapi. Pertama, kita membuat DataFrame “tidy_df” dengan tiga kolom. Masing-masing kolom ini memiliki 10 nilai.

DataFrame panjang ditampilkan di layar keluaran berikut:

Kemudian, kami meneruskan DataFrame “tidy_df” ke fungsi collect() dengan operator pipa “%>%”. Fungsi collect() dari tidir digunakan untuk mengubah “tidy_df” menjadi DataFrame yang panjang. Fungsi collect() mengambil input dengan nama 'Ujian' yang menunjukkan kolom baru untuk menampung nama variabel yang dibuat dalam transformasi. 'Marks' menentukan kolom yang mengumpulkan 'Exam1_Marks' dan 'Exam2_Marks' bersama-sama.

panjang <- rapi_df %>%

mengumpulkan (Ujian, Nilai,
Nilai_Ujian1: Nilai_Ujian2)


panjang

Keluarannya menampilkan DataFrame panjang ke konsol yang sekarang memiliki format 'panjang' dengan tiga kolom:

Contoh 4: Transpose DataFrame Menggunakan Fungsi Pivot_Wider() di R

Fungsi lanjutan berikutnya yang kita gunakan untuk mengubah urutan DataFrame adalah fungsi pivot_wider() . Pivot_wider() adalah fungsi dari paket tidir di R yang memungkinkan kita mengubah DataFrame 'panjang' menjadi DataFrame 'lebar'. Fungsi mengambil tiga argumen utama yang dibahas dalam kode R berikut:

perpustakaan (rapi)

df <- data.bingkai(

id = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
val = c(4, 5, 6, 7, 8, 9)


)

df

Di sini, pertama-tama kita memuat paket tidir menggunakan fungsi library() . Kemudian, kami mengatur sampel DataFrame di 'df'. DataFrame 'df' memiliki tiga kolom yang berisi nilai yang berbeda. Contoh DataFrame dapat dilihat pada output berikut:

Setelah itu, fungsi pivot_wider() dari tidir digunakan untuk mengubah “df” menjadi “df_wide”.

df_wide <- pivot_wider(df, nama_dari = var, nilai_dari = val)

df_wide

Fungsi pivot_wider() mengambil tiga argumen di sini. Pertama, dibutuhkan DataFrame 'df' untuk diubah. Kemudian, argumen names_from menyetel nama kolom yang akan digunakan untuk nama variabel baru. Terakhir, argumen values_from menentukan nama kolom yang akan digunakan untuk nilai baru.

Output berikut mewakili transposisi DataFrame panjang ke dalam DataFrame lebar:

Kesimpulan

Kami menggunakan berbagai cara untuk mentranspos DataFrame di R. Contoh pertama disetel dengan metode bawaan t() . Semua contoh lainnya memerlukan paket untuk diimpor sehingga kami dapat menggunakan fungsinya untuk transposisi DataFrame. Namun, metode terbaik untuk digunakan bergantung pada situasi spesifik dan struktur data yang sedang Anda kerjakan.