Я уверен, что есть очень простой ответ на этот вопрос, но я не могу его найти. В отдельной статье Как удалить пустые фреймы данных из списка? Я рассмотрел удаление пустого фрейма данных из списка фреймов данных.
Но как это сделать, если один из элементов в списке не классифицирован как фрейм данных и является просто значением NA? Немного изменив параметры вопроса выше, вы получите:
M1 <- data.frame(matrix(1:4, nrow = 2, ncol = 2))
M2 <- NA
M3 <- data.frame(matrix(9:12, nrow = 2, ncol = 2))
mlist <- list(M1, M2, M3)
Я хотел бы удалить M2 в этом случае, но у меня есть несколько примеров этих пустых фреймов данных, поэтому я хотел бы функцию, которая удаляет их все одновременно.
Я попробовал пару решений вышеупомянутого вопроса, которые не работают:
mlist[sapply(mlist, function(x) dim(x)[1]) > 0]##Error message -
##Error: (list) object cannot be coerced to type 'double'
Filter(function(x) dim(x), mlist) ###Incorrect outputs
Заранее благодарю за любую помощь!