2016-08-09 9 views
-1

別のデータフレームからの情報を使用して1つのデータフレームをフィルタリングする必要があります。列の名前と数は、選択に使用される条件の数と異なる可能性があります。データフレーム用の柔軟なフィルタR


info_1 info_3 info_4 
    aa  bb xx1 
    bb  cc N/A 
    dd  N/A N/A 
... 

最初のデータフレームの列数と列数:フィルタのための情報と


name info_1 info_2 info_3 info_4 value 
var1 aa  123  bb  xx1 120 
var2 bb  345  cc  xx2 520 
var3 aa  122  cc  xx1 640 
var4 dd  345  dd  xx3 540 
... 

とデータフレーム:例えば私は中から選択したいデータフレームは、以下の構造を有していますフィルタに使用する必要があるデータセットは、データセットごとに異なる場合があります。 このようなフィルタリングを行う有効な方法はありますか?私は、各列のforループでフィルタリングを行うことができると思いますが、明らかに最も効率的なやり方ではありません。あなたは確かに探している

+4

例に基づいて予想される出力は何を示していますか? 'filter'ingはあなたが保持したい/削除したい値を意味しますか? – akrun

答えて

0

df[Reduce('&', Map(function(u,v) v%in%u, filtering_df, df[names(filtering_df)])),] 

# name info_1 info_2 info_3 info_4 value 
#1 var1  aa 123  bb xx1 120 
#3 var3  aa 122  cc xx1 640 
+0

私はこれがジョイン操作でよりエレガントに解決できると思っていますが、誰が知っていますか...期待される結果は明らかではありません。 – Roland

+0

ありがとうございます!これは私が探していたものです。 – Alex