0

R初心者なのでよろしくお願いします。次のマトリックスがあるとします。

mat <- matrix(c(2,4,2,8, 1,4,11,9), 4)
dimnames(mat)[[2]] <- c("x", "y")
dimnames(mat)[[1]] <- c("a", "b", "c", "d")
mat
  x y
a 2 1
b 4 4
c 2 11
d 8 9

基本的に、新しいマトリックスに平均値が 5 以上の行のみが含まれるように、マトリックスをフィルター処理したいと考えています。そのため、"mat" では、行 "a" と "b" がこの基準を満たさないため削除され、新しいマトリックスは次のようになります。どんな助けでも大歓迎です!

mat
  x y
c 2 11
d 8 9
4

2 に答える 2

4
mat[ rowMeans(mat) < 5 , ]   # rowMeans is much faster than the apply method
于 2012-12-17T00:43:10.573 に答える
2

元の質問では、最小値が 5 以上の行を 選択applyminます。 を使用すると、各行の最小値が検出され、選択に使用されます。使用されているマトリックスが質問と一致しなくなったことに注意してください。

> mat1[apply(mat1, 1, min) >= 5,,drop=FALSE]
  x y
c 7 8

平均を使用して、編集された質問の場合:

> mat[apply(mat, 1, mean) >= 5,,drop=FALSE]
  x  y
c 2 11
d 8  9
于 2012-12-16T21:24:44.617 に答える