ตอบ: วิธีใช้ strsplit() กับตัวคั่นหลายตัว


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้กับฟังก์ชัน strsplit() ใน R เพื่อแบ่งสตริงออกเป็นส่วนๆ ตามตัวคั่นหลายตัว:

 strsplit(my_string, ' [,& ]+ ')

ตัวอย่างเฉพาะนี้จะแยกสตริงที่เรียกว่า my_string เมื่อใดก็ตามที่พบตัวคั่นหนึ่งในสามตัวต่อไปนี้:

  • สั่งซื้อ ( , )
  • เครื่องหมายแอมเพอร์แซนด์ ( & )
  • พื้นที่

โปรดทราบว่าอักขระในวงเล็บจะระบุตัวคั่นที่ต้องการค้นหา และเครื่องหมาย + ระบุว่าอาจมีตัวคั่นหลายตัวในแถว (เช่น อาจมีช่องว่างหลายช่องในแถว)

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ใช้ strsplit() กับตัวคั่นหลายตัวใน R

สมมติว่าเรามีสตริงต่อไปนี้ใน R:

 #create string
my_string <- 'this is a, string & with seven words'

หากเราใช้ฟังก์ชัน strsplit() เพื่อแยกสตริงทุกครั้งที่พบช่องว่าง มันจะให้ผลลัพธ์ดังต่อไปนี้:

 #split string based on spaces
strsplit(my_string, ' ')

[[1]]
 [1] "this" "is" "a," "string" "&" "with" "" ""      
 [9] “seven” “words”

ฟังก์ชัน strsplit() จะแยกสตริงทุกครั้งที่พบช่องว่าง แต่ไม่สามารถจัดการเครื่องหมายจุลภาค เครื่องหมาย และหลายช่องว่างได้

หากต้องการแยกสตริงตามตัวคั่นแต่ละตัว เราสามารถใช้ไวยากรณ์ต่อไปนี้:

 #split string based on multiple delimiters
strsplit(my_string, ' [,& ]+ ')

[[1]]
[1] "this" "is" "a" "string" "with" "seven" "words" 

ฟังก์ชันนี้สามารถแยกสตริงตามตัวคั่นที่แตกต่างกัน 3 ตัว และส่งคืนเฉพาะคำในสตริงที่เราสนใจอย่างถูกต้อง

โปรดทราบว่าในตัวอย่างนี้ เราได้รวมตัวคั่นในวงเล็บสามตัวไว้ในฟังก์ชัน strsplit() แต่คุณสามารถระบุตัวคั่นได้มากเท่าที่คุณต้องการ

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

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

วิธีใช้ฟังก์ชัน strsplit() ใน R เพื่อแยกองค์ประกอบสตริง
วิธีแยกสตริงและรับองค์ประกอบแรกใน R
วิธีนับคำในสตริงใน R

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

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