3

私はマトリックスを持っています

m <- matrix(c(1, 0, 3, 4, 0, 6), 3)

両方の列の値が実質的に 0 の行を除外して、行列を返す必要があります。

m <- matrix(c(1, 3, 4, 6), 3)

私が試してみました

m[m[, 1] > 0 & m[, 2] > 0]

しかし、これは0だけの行を取り除いた行列の代わりにベクトルを返します。これは単純なはずですが、私は立ち往生しています。

ありがとう、-エリザベス

4

2 に答える 2

6

多くの列がある場合

m
     [,1] [,2]
[1,]    1    4
[2,]    0    0
[3,]    3    6
m^2
     [,1] [,2]
[1,]    1   16
[2,]    0    0
[3,]    9   36
rowSums(m^2)
[1] 17  0 45
m[rowSums(m^2)>0,]
     [,1] [,2]
[1,]    1    4
[2,]    3    6
于 2012-06-19T16:34:27.747 に答える
6

独自のソリューションに「、」がありません。使用する

m[m[,1]>0 & m[,2]>0,]

そしてそれは動作します:

> m[m[,1]>0 & m[,2]>0,]
     [,1] [,2]
[1,]    1    4
[2,]    3    6
于 2012-06-19T16:29:26.953 に答える