วิธีใช้ str_match ใน r (พร้อมตัวอย่าง)


ฟังก์ชัน str_match() ของแพ็คเกจ stringr ใน R สามารถใช้เพื่อแยกกลุ่มที่ตรงกันออกจากสตริงได้

ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:

str_match(สตริง รูปแบบ)

ทอง:

  • สตริง: เวกเตอร์อักขระ
  • รุ่น: รุ่นที่จะค้นหา

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

ตัวอย่างที่ 1: ใช้ str_match กับ Vector

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน str_match() เพื่อแยกรูปแบบการจับคู่จากเวกเตอร์อักขระ:

 library (stringr)

#create vector of strings
x <- c('Mavs', 'Cavs', 'Heat', 'Thunder', 'Blazers')

#extract strings that contain 'avs'
str_match(x, pattern=' avs ')

     [,1] 
[1,] “avs”
[2,] “avs”
[3,] NA   
[4,] NA   
[5,] NA  

ผลลัพธ์คือเมทริกซ์ที่แต่ละแถวแสดงรูปแบบที่ตรงกันหรือค่า NA หากไม่พบรูปแบบนั้น

ตัวอย่างเช่น:

  • พบรูปแบบ “avs” ในองค์ประกอบแรก “Mavs” ดังนั้นจึงส่งคืน “avs”
  • พบรูปแบบ “avs” ในองค์ประกอบที่สอง “Cavs” ดังนั้นจึงส่งคืน “avs”
  • ไม่พบรูปแบบ “avs” ในองค์ประกอบที่สาม “Heat” ดังนั้น NA จึงถูกส่งคืน

และอื่นๆ

ตัวอย่างที่ 2: ใช้ str_match กับ Data Frame

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

 #create data frame
df <- data. frame (team=c('Mavs', 'Cavs', 'Heat', 'Thunder', 'Blazers'),
                 points=c(99, 104, 110, 103, 115))

#view data frame
df

     team points
1 Mavs 99
2 Cavs 104
3 Heat 110
4 Thunder 103
5 Blazers 115

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

 library (stringr)

#create new column
df$match <- str_match(df$team, pattern=' avs ')

#view updated data frame
df

     team points match
1 Mavs 99 avs
2 Cavs 104 avs
3 Heat 110 <NA>
4 Thunder 103 <NA>
5 Blazers 115 <NA>

คอลัมน์ใหม่ที่มีป้ายกำกับว่า ตรงกัน ประกอบด้วยเทมเพลต “avs” หรือ NA ขึ้นอยู่กับว่าเทมเพลตนั้นอยู่ในคอลัมน์ ทีม หรือไม่

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

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

วิธีใช้ str_replace ใน R
วิธีใช้ str_split ใน R
วิธีใช้ str_detect ใน R
วิธีใช้ str_count ใน R
วิธีใช้ str_pad ใน R

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

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