2016-10-17 4 views
-1

626個のobsを含むデータフレームをサブセット化しようとしています。 149個の変数のと、私は特定の文字列を探し、関係なく、それが中に発見されたものを列の値を持つ行を返すようにしたいサブセット値の全データフレームと値が見つかる行を返す

例:

私は、この文字列「GOを探しています:0004674画像リンクの下に示されているように、この文字列を多くの異なる列と行に含むことができるデータフレーム内に存在します。例えば

enter image description here

文字列「GO:0004674は、」だから私は輸出それらの上に、後行のみを保持し、したい行12、13および14に記載されています。

どうすればいいですか?これまで私が見てきたすべての例は、データフレーム全体ではなく特定の列の文字列のみを検索します。

アリヘルプは大歓迎です。

+0

何かがそれを行う必要があります: 'DFは[rowSums(sapply(DF、grepl、パターン= "GO:0004674を"))> 0、]' – HubertL

+0

は 'dput(ヘッドにより画像を置き換えます(your_data_frame)) ' – agstudy

+4

' df [rowSums(df == 'GO:0004674')> 0、] ' – Jaap

答えて

0

applyを使用すると、引数MARGIN = 1を使用して行単位の操作を実行できます。例:

このよう
mydf[apply(mydf, MARGIN = 1, FUN = function(x) {"GO:0004674" %in% x}), ] 
+0

これは、データフレームから行のサブセットのみを返します。正確には6です。この特定の文字列がデータフレームの57行にあることがわかったとき。これは私がしばらくの間立ち往生したところです。私はなぜ理解していないのですか –

+0

あなたのサンプルデータを再構築したとき、私のためにうまく働いた - いずれにしても、@ HubertLの答えがあなたのために働いた。 – Zach

関連する問題