2011-12-07 161 views
6

我想找出一種方法來刪除矩陣的行,如果該行中的單元格滿足某些特徵。例如:R:如果一行中的元素滿足某些特徵,我該如何刪除行?

> mm <- matrix(c(1,2,3,2,3,4,1,2,3,4),5,2) 
> mm 
    [,1] [,2] 
[1,] 1 4 
[2,] 2 1 
[3,] 3 2 
[4,] 2 3 
[5,] 3 4 

我想刪除行,如果該行的1列元是2.在最後,我想這樣的:

[,1] [,2] 
[1,] 1 4 
[2,] 3 2 
[3,] 3 4 

我怎麼能這樣做?

如果不是刪除第一個列元素的所有行是2,我需要刪除行的第一個列元素對應於包含在列表中的一組數字?例如

delete_list <- c(2,3) 

這樣做的最好方法是什麼?

謝謝您提前。

+0

包含在[如何從兩個條件的data.frame中選擇行](http://stackoverflow.com/questions/1536590/how-to-select-rows-from-data-frame-with-2-conditions )(並且在每篇關於R手冊的介紹中)。 –

回答

14

只需使用

mm2 <- mm[mm[,1]!=2,] 

這工作,因爲

mm[,1] != 2 

回報

[1] TRUE FALSE TRUE FALSE TRUE 

,基本上你使用這個布爾陣列挑來挑哪行。

2

未測試......

newmat <- mm[mm[,1]!=2,] 

基本上是我想你了。

編輯:該死的,忍者一分鐘!

相關問題