Для одной матрицы apply(is.na(mat), 2, any)
дает логический индекс для столбцов с NA.Чтобы удалить столбцы, выполните:
mat[, !apply(is.na(mat), 2, any)]
Для этого с помощью списка матриц выполните:
lapply(my_list, function(mat) mat[, !apply(is.na(mat), 2, any)])
Данные:
> dput(my_list)
list(structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, NA, NA, NA,
NA), .Dim = c(4L, 3L), .Dimnames = list(NULL, c("V1", "V2", "V3"
))), structure(c(1L, 2L, 3L, 4L, NA, NA, NA, NA, 9L, 10L, 11L,
12L), .Dim = c(4L, 3L), .Dimnames = list(NULL, c("V1", "V2",
"V3"))))