2013-10-11 312 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,] 
相關問題