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


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

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

 sub(' .*the ', '', my_string)

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

 library (stringr)

str_replace(my_string, ' (.*?)the(.*?) ', ' \\1 ')

ทั้งสองตัวอย่างนี้แยกสตริงหลังรูปแบบ “the” ใน my_string

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

 #create data frame
df <- data. frame (team=c('theMavs', 'theHeat', 'theNets', 'theRockets'),
                 dots=c(114, 135, 119, 140))

#view data frame
df

        team points
1 theMavs 114
2 theHeat 135
3 theNets 119
4 theRockets 140

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

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

 #create new column that extracts string after "the" in team column
df$team_name <- sub(' .*the ', '', df$team)

#view updated data frame
df

        team points team_name
1 theMavs 114 Mavs
2 theHeat 135 Heat
3 theNets 119 Nets
4 theRockets 140 Rockets

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

ที่เกี่ยวข้อง : การแนะนำ sub() ใน R

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

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

 library (stringr)

#create new column that extracts string after "the" in team column
df$team_name <- str_replace(df$team, ' (.*?)the(.*?)', '\\1 ')

#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 มีสตริงหลัง “the” สำหรับแต่ละแถวในคอลัมน์ ทีม ในกรอบข้อมูล

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

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

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

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

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

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