r - 匹配两个单词列表并返回匹配的单词

标签 r match

我想将一个字符串列表循环到另一个列表

cutter_Ch <- c('happy','birthday','Lucia') 
pos <- c('Lucia','today')

我可以做到的一种方法是使用 lapply

pos.matches = lapply(cutter_Ch, pmatch, pos)

[[1]]
[1] NA

[[2]]
[1] NA

[[3]]
[1] 1

但是,我希望函数返回匹配的字符串而不是 NA 和匹配的次数,如下所示

[[1]]
[1] NA

[[2]]
[1] NA

[[3]]
[1] Lucia

最佳答案

我们需要使用索引来对“pos”进行子集化

lapply(cutter_Ch, function(x) pos[pmatch(x, pos)])

尚不清楚此示例是否是更复杂的示例的简化版本。无论如何,使用 str_extract 我们可以在 vector

中获得相同的输出
library(stringr)
str_extract(cutter_Ch, paste(pos, collapse="|"))
#[1] NA      NA      "Lucia"

关于r - 匹配两个单词列表并返回匹配的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39342860/

相关文章:

mysql - ruby on rails mysql 数组中的全文相关性分数

string - 将字符串与拼写错误匹配的快速方法

r - 仅对 Rnw 文件中已更改的部分运行 knit

r - 使用一个数据集创建多个 R Markdown 报告

r - 添加计数列,如果满足一定条件则计数两次

c# - 如何从元组字符串中选择最匹配的字符串

r - 如何在 R 中组合表达式

r - dplyr::mutate 添加多个值

mysql 字符串包含在搜索字符串中

python - 计算 csv 中双参数匹配的出现次数,将结果 append 到 csv