2009-09-08 4 views

答えて

1

NAを含む行を削除する場合は、apply()を使用して各行を確認するためのクイック関数を適用できます。あなたの行列は、x、

goodIdx <- apply(x, 1, function(r) !any(is.na(r))) 
newX <- x[goodIdx,] 
5

であれば、例えば、私はna.rmは、通常は関数内でうまくいくと思う、機能を意味するために言います。その後、あなたは

y <- x[complete.cases(x),] 

> y 
    [,1] [,2] [,3] 
[1,] 1 4 7 
[2,] 2 5 8 

でこの行列の完全な例を得ることができます

x <- matrix(c(1:8, NA), 3, 3) 

> x 
    [,1] [,2] [,3] 
[1,] 1 4 7 
[2,] 2 5 8 
[3,] 3 6 NA 

:あなたは、次の3×3行列を持っているとしましょうhttp://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm

:私はcomplete.casesとなるだろうcomplete.cases -functionは、ケースが完了したかどうかを示す真理値のベクトルを返します。

xの行のインデックスを作成し、すべての列を追加するように「、」を追加します。

6

na.omit()は、行列(およびデータフレーム)を取り、NA値のない行のみを返します。これは、偽の行をさらに削除することによってさらに1ステップ進んでcomplete.cases()になります。

> 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