เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

grepl & grep (2)

สามารถใช้เครื่องหมาย ^ และ $ เพื่อจับคู่เนื้อหาที่อยู่ต้นและท้ายของ string ตามลำดับ ซึ่งช่วยให้ pattern ของเราใกล้เคียงกับการค้นหาเฉพาะอีเมล ".edu" จากรายการมากขึ้น แต่ยังมีส่วนเพิ่มเติมที่ทำให้ pattern รัดกุมยิ่งขึ้นได้อีก:

  • @ เพราะอีเมลที่ถูกต้องต้องมีเครื่องหมาย at-sign
  • .* ซึ่งจับคู่อักขระใดก็ได้ (.) ตั้งแต่ศูนย์ครั้งขึ้นไป (*) ทั้งจุดและเครื่องหมายดอกจัน ต่างเป็น metacharacter ใช้เพื่อจับคู่อักขระใดก็ได้ระหว่าง at-sign กับส่วน ".edu" ของอีเมล
  • \\.edu$ เพื่อจับคู่ส่วน ".edu" ที่ท้าย string โดย \\ ทำหน้าที่ escape จุด หมายความว่าต้องการใช้ . เป็นอักขระจริง ๆ ไม่ใช่ metacharacter

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

R ระดับกลาง

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ grepl() ร่วมกับ regular expression ที่ซับซ้อนขึ้นเพื่อให้ได้ logical vector แล้วแสดงผลลัพธ์
  • ทำแบบเดียวกันกับ grep() เพื่อสร้าง vector ของ index แล้วเก็บผลลัพธ์ไว้ในตัวแปร hits
  • ใช้ emails[hits] อีกครั้งเพื่อกรองข้อมูลจาก vector emails

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
            "invalid.edu", "[email protected]", "[email protected]")

# Use grepl() to match for .edu addresses more robustly


# Use grep() to match for .edu addresses more robustly, save result to hits


# Subset emails using hits
แก้ไขและรันโค้ด