Я пытаюсь извлечь несколько строк символов из большой базы данных.Я могу использовать фильтр (str_detect ....), чтобы найти выполнить одиночный поиск.
file_list <- list.files(file_location, pattern="*.GVH.gff3", full.names=TRUE)
#start for loop to read in files
for (i in seq_along(file_list)){
file_name <- read.delim(file_list[i])
file_name %>%
filter(str_detect(file_name$X17mers, "(S*|L*)LAVAQDLT")) %>%
write.csv(file=paste("miHA_", basename(file_list[i]), sep=''))
Я нашел ответ ниже на стеке обмена (спасибо Keiku), однако я уже использую функцию (|) и не могу найти> 1 строку.Есть ли другой способ объединить или найти несколько терминов одновременно и вытянуть соответствующие строки?
Можно использовать str_detect пакета stringr, включенного в пакет tidyverse.str_detect возвращает True или False относительно того, содержит ли указанный вектор некоторую конкретную строку.Можно фильтровать, используя это логическое значение.См. Введение в stringr для получения подробной информации о пакете stringr.
mtcars$type <- rownames(mtcars) mtcars %>% filter(str_detect(type, 'Toyota|Mazda'))
# mpg cyl disp hp drat wt qsec vs am gear carb type
# 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4
# 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 Mazda RX4 Wag
# 3 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 Toyota Corolla
# 4 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 Toyota Corona
Пример выходных данных:
Спасибо