วิธีแยกคอลัมน์ออกเป็นหลายคอลัมน์ใน r (พร้อมตัวอย่าง)
คุณสามารถใช้หนึ่งในสองวิธีเพื่อแบ่งคอลัมน์ออกเป็นหลายคอลัมน์ใน R:
วิธีที่ 1: ใช้ str_split_fixed()
library (stringr) df[c(' col1 ', ' col2 ')] <- str_split_fixed(df$original_column, ' sep ', 2)
วิธีที่ 2: ใช้แยก ()
library (dplyr) library (tidyr) df %>% separate(original_column, c(' col1 ', ' col2 '))
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
วิธีที่ 1: ใช้ str_split_fixed()
สมมติว่าเรามีกรอบข้อมูลดังต่อไปนี้:
#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
เราสามารถใช้ฟังก์ชัน str_split_fixed() จากแพ็คเกจ stringr เพื่อแยกคอลัมน์ ‘player’ ออกเป็นสองคอลัมน์ใหม่ที่เรียกว่า ‘First’ และ ‘Last’ ดังนี้:
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
โปรดทราบว่ามีการเพิ่มคอลัมน์ใหม่สองคอลัมน์ที่ส่วนท้ายของกรอบข้อมูล
คุณสามารถจัดเรียงคอลัมน์ใหม่และลบคอลัมน์ “ผู้เล่น” เดิมออกได้หากต้องการ:
#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
วิธีที่ 2: ใช้แยก ()
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน Separate() ของแพ็คเกจ Tidyr เพื่อแยกคอลัมน์ “player” ออกเป็นคอลัมน์ “first” และ “last”:
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
โปรดทราบว่าฟังก์ชัน Separate() จะแยกสตริงตามค่าที่ไม่ใช่ตัวอักษรและตัวเลข
ตัวอย่างเช่น หากชื่อและนามสกุลคั่นด้วยเครื่องหมายจุลภาค ฟังก์ชัน Separate() จะถูกแบ่งโดยอัตโนมัติตามตำแหน่งของเครื่องหมายจุลภาค:
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
คุณสามารถดูเอกสารออนไลน์ฉบับเต็มสำหรับฟังก์ชัน Separate() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:
วิธีรวมสองคอลัมน์เป็นคอลัมน์เดียวใน R
วิธีจัดเรียง data frame ตามคอลัมน์ใน R
วิธีเพิ่มคอลัมน์ใน data frame ใน R