Cara membagi kolom menjadi beberapa kolom di r (dengan contoh)


Anda dapat menggunakan salah satu dari dua metode untuk membagi kolom menjadi beberapa kolom di R:

Metode 1: Gunakan str_split_fixed()

 library (stringr)

df[c(' col1 ', ' col2 ')] <- str_split_fixed(df$original_column, ' sep ', 2)

Metode 2: Gunakan terpisah()

 library (dplyr)
library (tidyr)

df %>% separate(original_column, c(' col1 ', ' col2 '))

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

Metode 1: Gunakan str_split_fixed()

Misalkan kita memiliki kerangka data berikut:

 #create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#view data frame
df

         player points assists
1 John_Wall 22 8
2 Dirk_Nowitzki 29 4
3 Steve_Nash 18 15

Kita dapat menggunakan fungsi str_split_fixed() dari paket stringr untuk membagi kolom ‘pemain’ menjadi dua kolom baru yang disebut ‘Pertama’ dan ‘Terakhir’ sebagai berikut:

 library (stringr)

#split 'player' column using '_' as the separator
df[c(' First ', ' Last ')] <- str_split_fixed(df$player, ' _ ', 2)

#view updated data frame
df

         player points assists First Last
1 John_Wall 22 8 John Wall
2 Dirk_Nowitzki 29 4 Dirk Nowitzki
3 Steve_Nash 18 15 Steve Nash

Perhatikan bahwa dua kolom baru ditambahkan di akhir bingkai data.

Jangan ragu untuk mengatur ulang kolom dan menghapus kolom “pemain” asli jika Anda mau:

 #rearrange columns and leave out original 'player' column
df_final <- df[c('First', 'Last', 'points', 'assists')]

#view updated data frame
df_final

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Metode 2: Gunakan terpisah()

Kode berikut menunjukkan cara menggunakan fungsi Separate() pada paket Tidyr untuk memisahkan kolom “pemain” menjadi kolom “pertama” dan “terakhir”:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Perhatikan bahwa fungsi Separate() akan memisahkan string berdasarkan nilai non-alfanumerik.

Misalnya, jika nama depan dan belakang dipisahkan dengan koma, fungsi Separate() akan otomatis dipisahkan berdasarkan lokasi koma:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John,Wall', 'Dirk,Nowitzki', 'Steve,Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Anda dapat menemukan dokumentasi online lengkap untuk fungsi Separate() di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:

Cara menggabungkan dua kolom menjadi satu di R
Cara mengurutkan bingkai data berdasarkan kolom di R
Bagaimana cara menambahkan kolom ke bingkai data di R

Tambahkan komentar

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