string - R:子集匹配的单词

标签 string r search subset

这里,

a<-c("Look at the sky", "Sun is bright", "cloudy day")
b<-c("sky", "day")

我想根据ba进行子集化。我首选的答案是:

"Look at the sky", "cloudy day"

如何在 R 中执行此操作?

最佳答案

选项 1

您可以使用 sapply 将 a 与 b 中的所有术语进行匹配

sapply(b, grepl, a)

       sky   day
[1,]  TRUE FALSE
[2,] FALSE FALSE
[3,] FALSE  TRUE

然后使用 apply 和子集 a 折叠所有行。

a[apply(sapply(b, grepl, a), 1, any)]

[1] "Look at the sky" "cloudy day"     

选项 2

创建组合正则表达式模式

paste(b, collapse="|")

[1] "sky|day"

并使用它进行 grep

a[grepl(paste(b, collapse="|"), a)]

[1] "Look at the sky" "cloudy day"     

关于string - R:子集匹配的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23241723/

相关文章:

c++ - 为什么带引号的字符串在 std::string 之前匹配 bool 方法签名?

python - 在不破坏字符的情况下将 unicode 字符串拆分为 300 字节的 block

r - 计算日期滞后

sql - 将 1000 个 ID 填充到 SELECT ... WHERE ... IN (...) Postgres 查询中是否合理?

c - 搜索文件时发生访问冲突

python - 在 Pelican 支持的博客中启用搜索功能吗?

python - “float”类型错误 Python、pandas

swift - 在 Swift 中,如何修改带下标的字符串中的字符?

r - 如何在R中使用部分不同的键合并列表?

r - 通过 `map()` 传递名称以进行延迟评估