R:选择特定列具有特定值的矩阵行

时间:2013-10-11 20:37:25

标签: r matrix conditional-statements

我有一个矩阵 m ,有4列和100行。矩阵的头部看起来像这样:

    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

我想要做的是选择第四列与0不同的所有行。在上面的例子中,我应该回来:

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

我尝试了以下哪个命令:

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

但我一直收到错误“索引超出限制。我做错了什么?有没有一种简单的方法可以实现我的目标?

1 个答案:

答案 0 :(得分:1)

问题只是一个错误的逗号,如eddi所述。解决方案应该是:

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

另外,正如mrip所述,使用是不必要的。我可以简单地使用:

    m[m[,4]!=0,]