6

マトリックスでは、一部の欠落データがある場合は `NA.

  • NAマトリックス内の行を削除するにはどうすればよいですか?
  • 使えますna.rmか?
4

3 に答える 3

7

na.omit()行列(およびデータフレーム)を取得し、NA値がまったくない行のみを返しcomplete.cases()ます。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
于 2009-09-08T17:39:15.513 に答える
6

na.rmは通常、平均関数など、関数内でのみ機能すると思います。私はcomplete.casesに行きます: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm

次の 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

次に、このマトリックスの完全なケースを取得できます

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

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

complete.cases関数は、ケースが完了しているかどうかを示す真理値のベクトルを返します。

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

次に、行列xの行にインデックスを付け、「,」を追加して、すべての列が必要であることを示します。

于 2009-09-08T17:30:58.620 に答える
1

NA を含む行を削除したい場合は、apply() を使用して各行をチェックするクイック関数を適用できます。たとえば、行列が x の場合、

goodIdx <- apply(x, 1, function(r) !any(is.na(r)))
newX <- x[goodIdx,]
于 2009-09-08T17:27:54.947 に答える