Как поместить data.frames, хранящиеся в списке?

Я создал список и сохранил один фрейм данных в каждом компоненте. Теперь я хотел бы отфильтровать эти фреймы данных, сохранив только те строки, которые имеют NA в определенном столбце. Я хотел бы, чтобы результатом этой операции был другой список, содержащий фреймы данных, только с теми строками, которые имеют NA в этом столбце.

Вот код, чтобы уточнить, что я говорю. Предполагатьd1 а такжеd2 мои фреймы данных

set.seed(1)

d1<-data.frame(a=rnorm(5), b=c(rep(2006, times=4),NA))
d2<-data.frame(a=1:5, b=c(2007, 2007, NA, NA, 2007))  

print(d1)
 a    b
 1.3011543 2006
 0.3780023 2006
-0.3101449 2006
-1.3927445 2006
-1.0726218   NA

print(d2)
a    b
1 2007
2 2007
3   NA
4   NA
5 2007

который я помещаю в список с циклом for

ls<-list()

for (i in 1:2){ 

  str<-paste("d", i, sep="")
  dat<-get(str)
  ls[[str]]<-dat

}

Теперь я хотел бы отфильтровать каждый компонент списка, чтобы оставить только строки столбца b, содержащие NA. Для этого я попытался использовать следующую команду, зная с самого начала, что она потерпит неудачу. Моя проблема в том, что я не знаю,subset() это правильная функция для использования, и, если это так, я не знаю, как квалифицировать каждый кадр данных (то есть первый элемент функции подмножества)

lsNA<-lapply(ls, subset(ls, is.na(b)))

Можете ли вы помочь мне преодолеть мои серьезные ограничения?

Ответы на вопрос(2)

Ваш ответ на вопрос