r - 保留在同一行中有两个字符串的行
问题描述
在这样的数据框中:
df <- data.frame(id = c(1,2,3), text = c("hi my name is E","hi what's your name","name here"))
我想保留一行同时包含 hi 和 name 单词的行。消耗的输出示例:
df <- data.frame(id = c(1,2,3), text = c("hi my name is E","hi what's your name"))
我试试这个,但它不能正常工作:
library(tidyverse)
df %>%
filter(str_detect(text, 'name&hi'))
解决方案
一个简单的答案和两个更复杂的答案,只有当你有超过 2 个单词要检查时,你才真正需要
library(tidyverse)
df %>%
filter(str_detect(text, 'hi') & str_detect(text, 'name'))
df %>%
filter(rowSums(outer(text, c('hi', 'name'), str_detect)) == 2)
df %>%
filter(reduce(c('hi', 'name'), ~ .x & str_detect(text, .y), .init = TRUE))
推荐阅读
- python - 如何根据季度数据计算一年的平均值?
- javascript - Javascript - 循环嵌套循环
- angular - Angular:多个 valueChanges 超出了最大调用堆栈大小
- c - 为什么 realloc 似乎没有扩展内存。realloc 没有按描述工作
- mysql - keycloak docker mysql连接链接失败
- typescript - 打字稿:如果提供了类型,如何要求一个属性,如果没有提供类型,如何禁止该属性?
- java - 自定义注释没有得到参数的值
- python - 为强化学习实现 LSTM 时间步长
- python - 使用 python 读取大型文本文件比使用 Matlab 读取相同文本的相同代码要慢得多,知道为什么吗?
- excel - 使用 Excel 在 Access 中添加/删除记录