2013-05-26 15 views
8

Używam R do generowania przykładów jak radzić sobie z brakującymi danymi dla klasy statystyki, której nauczam. Jedna metoda wymaga wygenerowania "binarnej zmiennej wartości brakujących", z 0 dla przypadków zawierających brakujące wartości i 1 bez brakujących wartości. Na przykładR-generuje "zmienną brakujących wartości"

n X Y Z 
1 4 300 2 
2 8 400 4 
3 10 500 7 
4 18 NA 10 
5 20 50 NA 
6 NA 1000 5 

Chciałbym wygenerować zmienną M takie, że

n m 
1 1 
2 1 
3 1 
4 0 
5 0 
6 0 

Wydaje się to powinno być proste, biorąc pod uwagę zdolność R, aby obsłużyć brakujących wartości. Najbliższe, co znalazłem, to m <-ifelse(is.na(missguns),0,1), ale wszystko to powoduje wygenerowanie nowej całej macierzy danych z 0 lub 1 wskazującą brak. Jednak chcę tylko jednej zmiennej wskazującej, czy wiersz zawiera brakujące wartości.

Odpowiedz

9

complete.cases robi dokładnie to, co chcesz.

complete.cases(x) 
## [1] TRUE TRUE TRUE FALSE FALSE FALSE 

można zmusić do numerycznych lub całkowitych:

as.integer(complete.cases(x)) 
## [1] 1 1 1 0 0 0 
+0

Thanks-to załatwiło sprawę! Podobnie jak aktualizacja, wprowadziłem t-test Rubina. tutaj jest kod, który wygenerowałem. Zbiór danych to zbiór danych "missguns" ("pistolety", ale uwzględniono brakujące wartości), a jedną z zmiennych jest "urban". brakujące <-as.integer (complete.cases (missguns)) trening <-cbind (missguns, brak) brakujący <-practice [trening $ brakujący == 0,] kompletny <-practice [trening $ brakujący == 1 ,] t.test (brakuje $ urban, complete $ urban) –

Powiązane problemy