Один из вариантов будет filter
library(tidyverse)
map(DGE_tables, ~ .x %>%
filter(column1 != "to_delete"))
#[[1]]
# column1 column2
#1 to_keep 45
#[[2]]
# column1 column2
#1 to_keep 27
Или с slice
map(DGE_tables, ~ .x %>%
slice(which(column1 != "to_delete")))
Или это также можно сделать с помощью base R
lapply(DGE_tables, subset, subset = column1 != "to_delete")
ПРИМЕЧАНИЕ. Набор данных OP имеет значение list
из data.frame
и нуждается в возвращаемом выходе list
из data.frame
с с подмножеством строк
и не будет работать с keep
или discard
purrr::keep(DGE_tables, ~ .x[['column1']] == 'to keep')
Ошибка: функции предиката должны возвращать один TRUE
или FALSE
, а не
логический вектор длины 2
данные
DGE_tables <- list(structure(list(column1 = c("to_delete", "to_keep"),
column2 = c(56L,
45L)), class = "data.frame", row.names = c("1", "2")), structure(list(
column1 = c("to_delete", "to_keep"), column2 = c(78L, 27L
)), class = "data.frame", row.names = c("1", "2")))