W matrycy, jeśli brakuje niektórych danych zarejestrowanych jako NA.Pytania dotyczące brakujących danych
- Jak mogę usunąć wiersze z
NA
w macierzy? - Czy mogę użyć
na.rm
?
W matrycy, jeśli brakuje niektórych danych zarejestrowanych jako NA.Pytania dotyczące brakujących danych
NA
w macierzy?na.rm
?Jeśli chcesz usunąć wiersze zawierające NA, możesz użyć apply(), aby zastosować szybką funkcję do sprawdzenia każdego wiersza. Na przykład, jeśli macierz jest x,
goodIdx <- apply(x, 1, function(r) !any(is.na(r)))
newX <- x[goodIdx,]
myślę na.rm pracuje zwykle tylko wewnątrz funkcji, powiedzmy dla oznaczać funkcję. pójdę z complete.cases: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm
powiedzmy masz następującą macierz 3x3-:
x <- matrix(c(1:8, NA), 3, 3)
> x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 NA
następnie można uzyskać kompletne przypadki tej matrycy z
y <- x[complete.cases(x),]
> y
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
Funkcja complete.cases zwraca wektor wartości prawdy, który określa, czy sprawa jest kompletna:
> complete.cases(x)
[1] TRUE TRUE FALSE
, a następnie indeksować wiersze macierzy x i dodać ",", aby powiedzieć, że chcesz wszystkie kolumny.
na.omit()
zajmie matryce (i ramki danych) i zwróci tylko te wiersze bez żadnych wartości NA - jeden krok dalej zajmuje complete.cases()
, usuwając dla ciebie wiersze FALSE.
> x <- data.frame(c(1,2,3), c(4, NA, 6))
> x
c.1..2..3. c.4..NA..6.
1 1 4
2 2 NA
3 3 6
> na.omit(x)
c.1..2..3. c.4..NA..6.
1 1 4
3 3 6