使用grepl讓我們假設我有以下變量:爲multipe文本
a <- c('one','two','three')
b <- c('one|on','two|wo',"three|thre")
c <- c('there is one','there one is ','there is one three two')
而且我想,結果如下新的變量:
d
[1] "one" "one" "three"
我所試圖做的是找到例如文字one
或on
,然後將新值one
分配給新變量d
。此外,如果a
中有多個值,則層次結構應該來自最後一個值。
什麼我可以做的是以下幾點:
d <- list()
d[grepl(b[1],c)] <- a[1]
d[grepl(b[2],c)] <- a[2]
d[grepl(b[3],c)] <- a[3]
d <- unlist(d)
同樣可以在一個簡單的循環來完成。但有沒有其他更優雅的方式?
你看過'stri_replace_all_regex'嗎? –