Cara mengubah beberapa kolom menjadi faktor menggunakan dplyr


Anda dapat menggunakan metode berikut untuk mengonversi beberapa kolom menjadi faktor menggunakan fungsi dalam paket dplyr :

Metode 1: Ubah kolom tertentu menjadi faktor

 library (dplyr) 

df %>% mutate_at(c(' col1 ', ' col2 '), as. factor )

Metode 2: Ubah Semua Kolom Karakter menjadi Faktor

 library (dplyr)

df %>% mutate_if(is. character , as. factor )

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.  

Contoh 1: Ubah kolom tertentu menjadi faktor

Misalkan kita memiliki bingkai data berikut di R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

Kita dapat melihat bahwa kolom team , position dan starter adalah karakter sedangkan kolom points adalah numerik.

Untuk mengonversi kolom tim dan posisi saja menjadi faktor, kita dapat menggunakan sintaks berikut:

 library (dplyr) 

#convert team and position columns to factor
df <- df %>% mutate_at(c(' team ', ' position '), as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

Kita dapat melihat bahwa kolom tim dan posisi sekarang menjadi faktor keduanya.

Contoh 2: Ubah semua kolom karakter menjadi faktor

Misalkan kita memiliki bingkai data berikut di R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

Kita dapat melihat bahwa tiga kolom dalam bingkai data adalah kolom karakter.

Untuk mengubah semua kolom karakter menjadi faktor, kita dapat menggunakan sintaks berikut:

 library (dplyr) 

#convert all character columns to factor
df <- df %>% mutate_if(is. character , as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: Factor w/ 2 levels "N","Y": 2 2 2 1 1 2 1 1
 $ points: num 12 24 25 35 30 14 19 11

Kita dapat melihat bahwa semua kolom karakter sekarang menjadi faktor.

Catatan : Lihat halaman dokumentasi dplyr untuk penjelasan lengkap tentang fungsi mutate_at dan mutate_if .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:

Cara mengubah beberapa kolom menjadi numerik menggunakan dplyr
Cara mengubah faktor menjadi numerik di R
Bagaimana cara mengubah tanggal menjadi angka di R

Tambahkan komentar

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