2

4 列 100 行の行列mがあります。マトリックスの頭は次のようになります。

    head(m)
      [,1]  [,2]     [,3]       [,4]
 [1,] 1256 1.0000000 3.709184    0
 [2,] 8402 0.4226495 3.644793    0
 [3,]  656 0.4117985 3.165158    0
 [4,] 3925 0.4098163 3.239075    0
 [5,] 4987 0.4077779 3.471448    0
 [6,] 4715 0.4051867 3.400527    2

私がやりたいことは、4 番目の列が 0 と異なるすべての行を選択することです。上記の例では、次のように戻る必要があります。

     [,1]  [,2]     [,3]       [,4]
 [1,] 4715 0.4051867 3.400527    2        

次のどのコマンドを試しました:

    m[,which(m[,4]!=0)]

しかし、「 index is out of limit」というエラーが表示され続けます。何が間違っていますか?私が望むものを達成する簡単な方法はありますか?

4

1 に答える 1

2

eddiが述べたように、問題は単純にコンマの配置ミスでした。解決策は次のとおりです。

    m[which(m[,4]!=0),]

また、mripで述べたように、その使用は必要ありません。私は単に使用することができました:

    m[m[,4]!=0,]
于 2013-10-12T11:29:36.937 に答える