2013-10-11 325 views
0

我有一个矩阵m有4列和100行。矩阵的头看起来是这样的:R:选择特定列具有特定值的矩阵的行

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.In上面的例子不同的所有行,我该回去:

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

我想哪个命令如下:?

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

,但我不断收到错误“索引超出极限的什么我做错了,是个一个简单的方法来实现我想要的?

+1

你弄丢了逗号 - 'M' – eddi

+0

哦,我完全错过了[其中,(M [4]!= 0)]。谢谢你指出。 – John

+2

另外,你不需要:'m [m [,4]!= 0,]'也可以。 – mrip

回答

1

问题只是一个错位的逗号,如eddi提到。该解决方案应该是:

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

而且,如由mrip提到的,使用的其中是没有必要的。我可以简单地使用:

m[m[,4]!=0,] 
相关问题