วิธีแยกสตริงระหว่างอักขระเฉพาะใน r


คุณสามารถใช้วิธีการต่อไปนี้เพื่อแยกสตริงระหว่างอักขระเฉพาะใน R:

วิธีที่ 1: แยกสตริงระหว่างอักขระเฉพาะโดยใช้ Base R

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

วิธีที่ 2: แยกสตริงระหว่างอักขระเฉพาะโดยใช้ stringr

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

ทั้งสองตัวอย่างนี้จะแยกสตริงระหว่าง char1 และ char2 ลงใน my_string

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

ตัวอย่างที่ 1: แยกสตริงระหว่างอักขระเฉพาะโดยใช้ Base R

รหัสต่อไปนี้แสดงวิธีการแยกสตริงระหว่าง ทีม และอักขระ โปร สำหรับแต่ละแถวในคอลัมน์ ทีม ของกรอบข้อมูล:

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

โปรดทราบว่าคอลัมน์ใหม่ชื่อ team_name มีสตริงระหว่างอักขระ ทีม และอักขระ โปร สำหรับแต่ละแถวในคอลัมน์ ทีม ของกรอบข้อมูล

ที่เกี่ยวข้อง : บทนำเกี่ยวกับ gsub() ใน R

ตัวอย่างที่ 2: แยกสตริงระหว่างอักขระเฉพาะโดยใช้แพ็คเกจ stringr

รหัสต่อไปนี้แสดงวิธีการแยกสตริงระหว่าง ทีม และอักขระมือ อาชีพ สำหรับแต่ละแถวในคอลัมน์ ทีม ของกรอบข้อมูลโดยใช้ฟังก์ชัน str_match() ของแพ็คเกจ stringr ใน R:

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

โปรดทราบว่าคอลัมน์ใหม่ชื่อ team_name มีสตริงระหว่างอักขระ ทีม และอักขระ โปร สำหรับแต่ละแถวในคอลัมน์ ทีม ของกรอบข้อมูล

ซึ่งสอดคล้องกับผลลัพธ์ของการใช้ฟังก์ชัน gsub() ในฐาน R

โปรดทราบว่าฟังก์ชัน str_match() ส่งคืนเมทริกซ์โดยที่คอลัมน์แรกมีสตริงดั้งเดิม และคอลัมน์ที่สองมีสตริงย่อยที่สนใจ

ดังนั้น เราต้องใช้ [,2] เพื่อแยกเฉพาะคอลัมน์ที่สองจากเมทริกซ์ที่ส่งคืนโดยฟังก์ชัน str_match()

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีเลือกคอลัมน์ที่มีสตริงเฉพาะใน R
วิธีลบอักขระออกจากสตริงใน R
วิธีค้นหาตำแหน่งอักขระในสตริงใน R

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

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