Zliczanie obserwacji według liczby brakujących zmiennych

Chciałbym policzyć wiersze ramki danych, zgodnie z liczbą brakujących zmiennych. Na przykład w poniższej ramce danych chciałbym, aby kod zwrócił listę:

3, 5, 1, 1, 0

ponieważ są 3 wiersze bez brakujących zmiennych, 5 wierszy z 1 brakującą zmienną, 1 wiersz z 2 brakującymi zmiennymi, 1 wiersz z 3 brakującymi zmiennymi i 0 wierszy z 4 brakującymi zmiennymi:

   v1 v2 v3 v4
1   1  1  1  1
2  NA NA  1  1
3   1  1 NA  1
4   1  1  1  1
5  NA  1  1  1
6  NA  1  1  1
7   1  1  1 NA
8  NA  1  1  1
9   1  1  1  1
10  1 NA NA NA

Oto przykładowe dane, które można załadować w R:

dt <- structure(list(v1 = c(1, NA, 1, 1, NA, NA, 1, NA, 1, 1), v2 = c(1, NA, 1, 1, 1, 1, 1, 1, 1, NA), v3 = c(1, 1, NA, 1, 1, 1, 1, 1, 1, NA), v4 = c(1, 1, 1, 1, 1, 1, NA, 1, 1, NA)), .Names = c("v1", "v2", "v3", "v4"), row.names = c(NA, -10L), class = "data.frame")

Mogę to zrobić już teraz, zapętlając wiersz ramki danych po wierszu i zwiększając liczniki liczby brakujących zmiennych, ale jest to bardzo powolne na dużych ramkach danych, więc miałem nadzieję, że jest to sprytny sposób?

questionAnswers(2)

yourAnswerToTheQuestion