sub & gsub (2)
Regular expressions เป็นแนวคิดที่เรียนรู้ได้ดีที่สุดจากการลงมือทำและดูตัวอย่าง ก่อนจะเริ่มคิดวิเคราะห์ regular expression ในแบบฝึกหัดนี้ มาทำความเข้าใจสิ่งใหม่ที่จะใช้กันก่อน:
.*: ตัวละครยอดนิยม! อ่านได้ว่า "อักขระใดก็ได้ที่จับคู่ได้ตั้งแต่ศูนย์ครั้งขึ้นไป"\\s: จับคู่ช่องว่าง ตัวอักษร "s" ปกติคืออักขระทั่วไป แต่เมื่อใส่ escape (\\) จะกลายเป็น metacharacter[0-9]+: จับคู่ตัวเลข 0 ถึง 9 อย่างน้อยหนึ่งครั้ง (+)([0-9]+): วงเล็บใช้เพื่อดึงส่วนที่จับคู่ได้มาใช้กำหนด replacement โดย\\1ใน argumentreplacementของsub()จะถูกแทนที่ด้วยสตริงที่ capture ได้จาก regular expression[0-9]+
awards <- c("Won 1 Oscar.",
"Won 1 Oscar. Another 9 wins & 24 nominations.",
"1 win and 2 nominations.",
"2 wins & 3 nominations.",
"Nominated for 2 Golden Globes. 1 more win & 2 nominations.",
"4 wins & 1 nomination.")
sub(".*\\s([0-9]+)\\snomination.*$", "\\1", awards)
โค้ดชุดนี้จะคืนค่าอะไร? awards ถูกกำหนดไว้ใน workspace แล้ว สามารถทดลองรันในคอนโซลได้เลย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด