2011-12-07 7 views
6

私は、その行のセルが特定の特性を満たす場合、行列の行を削除する方法を見つけようとしています。たとえば、次のようにその行の第一列要素が終わり2である場合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,] 1 4 
[2,] 3 2 
[3,] 3 4 

はどうすればこれを行うことができますか?

最初の列要素が2である行をすべて削除する代わりに、最初の列要素がリストに含まれる一連の数値に対応する行を削除する必要がある場合はどうすればよいでしょうか?たとえば、

delete_list <- c(2,3) 

これを行うにはどうすればよいですか?

ありがとうございます。

+0

[2つの条件でdata.frameから行を選択する方法](http://stackoverflow.com/questions/1536590/how-to-selectrows-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,] 

は、私はあなたが後にしている何を考え、基本的です。

編集:1分でいいね!

関連する問題