วิธีแยกคอลัมน์ออกเป็นหลายคอลัมน์ใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *