模式列表如下所示:
pattern <- c('aaa','bbb','ccc','ddd')
X 来自 df 看起来像:
df$X <- c('aaa-053','aaa-001','aab','bbb')
我试图做的:使用agrep根据df$X在pattern中找到匹配的名称,然后根据匹配结果为现有列'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
}
}
df 中的理想 column2 如下所示:
'aaa','aaa',na,'bbb'