2017-01-25 6 views
-1

既存のデータフレームから新しいデータフレームを生成したいのですが、この新しいdfの列は、その変数が別のベクトルにリストされているかどうかに基づいて選択されますすなわち、行として)。したがって、新しいdfには、ベクトルにリストされた列のみが含まれます。私は、効率のために、これらの列を手動で指定する必要なく、これを実行したいと思います。R:データフレーム内の「フィルタ」列をリストで指定

私の直感は、これはかなり簡単な操作ですが、Rには非常に新しいので、問題にどのように接近するのか正確には分かりません。

ありがとうございます!

+4

'your_data_frame [your_vector]'のような音ですが、口頭での説明とコードなしでは分かりづらいです。 [再現可能な例を作る方法](http://stackoverflow.com/q/5963269/903061)と、おそらくいくつかの[基本的なサブセットのドキュメント](http://stackoverflow.com/documentation/r/)をご覧ください。 1686 /基本サブセット#t = 201701252346071015916)。 – Gregor

答えて

0

私はちょうど今日これを(そして別の答えで)使用しました。

あなたが連結されたリストを作成したい場合:

newDF<- df[ ,which((names(df) %in% matchingList)==TRUE)] 

matchingList<-c("a","b","b") 

を、あなたは同じ列名の一部とデータフレームdfを持って、あなたはこのようにそれをサブセットすることができますあなたが指示を英語で左から右に読んでいたなら、コードはこう言う:

  • 作成するデータフレーム<-df[ ,のすべての行のサブセットに等しいnewDF
  • セットnewDF(行がカンマの前とブラケットの後のスペースに住んでいる)
  • どこDF which((names(df)
  • の列名という名前の新しいデータフレームこれは両方に存在するフィールドのみをサブセットおよびWHIを満たすためにTRUEの論理値を返す真==TRUE)

%in% matchingList)

  • 戻り値をリストマッチング名と比較2つのリストを比較するchステートメントです。

    もっと簡単な方法がありますが、dfと一致するリストを大幅に変更してフィルタを修正する必要はありません。

  • +0

    これはまさに私が(私のあいまいな質問にもかかわらず)やりたいと思っていたものでした。 – AJK

    +0

    あなたは大歓迎です! – sconfluentus

    関連する問題