ตอบ: วิธีใช้ 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