首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何子集数据帧以包含包含特定单词的所有元素

如何子集数据帧以包含包含特定单词的所有元素
EN

Stack Overflow用户
提问于 2022-08-19 03:19:58
回答 2查看 31关注 0票数 0

我想要子集我的数据框架,以包含所有的元素,其中包含‘抑制剂’。我想保留整个元素。例如,我有一个新的数据框架: 342个肾素抑制剂,342个肾素抑制剂,216个α-葡萄糖苷酶抑制剂,等等。

这不管用

代码语言:javascript
复制
library(dplyr)
TC1S1 = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/TC1S1.csv')
x <- TC1S1 %>% filter(grepl('inhibitor', TC1S1[,1]))
EN

回答 2

Stack Overflow用户

发布于 2022-08-19 03:50:32

对于基本的R选项,我们可以在行模式下使用apply()grepl()

代码语言:javascript
复制
a[apply(a, 1, function(r) any(grepl("inhibitor", r, fixed=TRUE))), ]

  col1            col2            col3
1 drug  drug-inhibitor drug inhibitor3
2 drug drug inhibitor2 drug inhibitor4

数据:

代码语言:javascript
复制
a <- data.frame(col1=c('drug', 'drug', 'drug'),
                col2=c('drug-inhibitor', 'drug inhibitor2', 'drug'),
                col3=c('drug inhibitor3', 'drug inhibitor4', 'drug'))
票数 0
EN

Stack Overflow用户

发布于 2022-08-19 06:51:34

你也可以使用str_detect()

代码语言:javascript
复制
library(dplyr)
library(stringr)
a <- data.frame(
  col1 = c("drug", "drug", "drug"),
  col2 = c("drug-inhibitor", "drug inhibitor2", "drug"),
  col3 = c("drug inhibitor3", "drug inhibitor4", "drug")
)

a %>%
  filter(if_any(everything(), ~ stringr::str_detect(string = ., pattern = "inhibitor")))

输出:

代码语言:javascript
复制
  col1            col2            col3
1 drug  drug-inhibitor drug inhibitor3
2 drug drug inhibitor2 drug inhibitor4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73411522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档