1. ホーム
  2. r

[解決済み] 条件を満たす行列の行を選択する

2022-04-23 02:52:32

質問

Rで行列で。

     one two three four
 [1,]   1   6    11   16
 [2,]   2   7    12   17
 [3,]   3   8    11   18
 [4,]   4   9    11   19
 [5,]   5  10    15   20

3列目=11となる行を持つ部分行列を抽出したい。ということだ。

      one two three four
 [1,]   1   6    11   16
 [3,]   3   8    11   18
 [4,]   4   9    11   19

これをループさせずに行いたいのです。私はRの初心者なので、これは非常に明白なことかもしれません。 のドキュメントはやや簡潔であることが多い。

どのように解決するのですか?

as.data.frame()を使って行列をデータフレームに変換すると、より簡単に行えます。 この場合、以前の回答(subsetまたはm$threeを使用)は動作しますが、そうでない場合は動作しません。

に対して操作を行うには 行列 というように、列を名前で定義することができます。

m[m[, "three"] == 11,]

あるいは数字で。

m[m[,3] == 11,]

マッチする行が1つだけの場合,結果は行列ではなく,整数ベクトルであることに注意。