Мы можем использовать discard
library(purrr)
discard( lst1, ~is.vector(.x) || is.null(.x)|is_tibble(.x) )
РЕДАКТИРОВАТЬ: Из @ ArtemSokolov комментарии
или от base R
out <- Filter(function(x) !(is.vector(x) | is.null(x) |is_tibble(x)), lst1)
out
#[[1]]
# col1
#1 1
#2 2
#3 3
#[[2]]
# A B
#1 1 2
#2 2 3
#3 3 4
#4 4 5
#5 5 6
Функция delete.NULLs
не найдена в base R
. Но его можно создать с помощью комбинации is.null
и отрицания (!
).
данные
lst1 <- list(data.frame(col1 = 1:3), NULL, tibble(col1 = 1:5,
col2 = 2:6), NA, data.frame(A = 1:5, B = 2:6))