
我想要子集我的数据框架,以包含所有的元素,其中包含‘抑制剂’。我想保留整个元素。例如,我有一个新的数据框架: 342个肾素抑制剂,342个肾素抑制剂,216个α-葡萄糖苷酶抑制剂,等等。
这不管用
library(dplyr)
TC1S1 = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/TC1S1.csv')
x <- TC1S1 %>% filter(grepl('inhibitor', TC1S1[,1]))发布于 2022-08-19 03:50:32
对于基本的R选项,我们可以在行模式下使用apply()和grepl():
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数据:
a <- data.frame(col1=c('drug', 'drug', 'drug'),
col2=c('drug-inhibitor', 'drug inhibitor2', 'drug'),
col3=c('drug inhibitor3', 'drug inhibitor4', 'drug'))发布于 2022-08-19 06:51:34
你也可以使用str_detect()。
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")))输出:
col1 col2 col3
1 drug drug-inhibitor drug inhibitor3
2 drug drug inhibitor2 drug inhibitor4https://stackoverflow.com/questions/73411522
复制相似问题