รายการรูปแบบดูเหมือนว่า:
pattern <- c('aaa','bbb','ccc','ddd')
X มาจาก df ดูเหมือนว่า:
df$X <- c('aaa-053','aaa-001','aab','bbb')
สิ่งที่ฉันพยายามทำ: ใช้ agrep เพื่อค้นหาชื่อที่ตรงกันในรูปแบบตาม df$X จากนั้นกำหนดค่าให้กับคอลัมน์ที่มีอยู่ 'column2' ตามผลลัพธ์ที่ตรงกัน ตัวอย่างเช่น หาก 'aaa-053' ตรงกับ 'aaa' ดังนั้น 'aaa' จะเป็นค่าใน 'column2' หากไม่ตรงกัน ให้ส่งคืน na ในคอลัมน์นั้น
for (i in 1:length(pattern)) {
match <- agrep(pattern, df$X, ignore.case=TRUE, max=0)
if agrep = TRUE {
df$column2 <- pattern
} else {df$column2 <- na
}
}
คอลัมน์ในอุดมคติ 2 ใน df ดูเหมือนว่า:
'aaa','aaa',na,'bbb'
aaa
ตรงกับaab
ของคุณ - person r2evans   schedule 19.03.2021