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?