2016-08-17 15 views
-1

多くの列と行を含む非常に大きなデータセットを取得しました。すべての同僚がすべてのデータを見ることはできません。データフレームData_locatieに基づいて、元のデータフレームDFをサブセット化したいと考えています。列accesは、同僚がyes(= 1)またはno(= 0)の組み合わせを表示するかどうかを教えてくれます。私はあなたが使用できる再現可能な例を作りました。R行ごとに複数の条件によるサブセットデータ

CityChargeSessions <-c("Amsterdam","Amsterdam","Amsterdam","Amsterdam","Beverwaard","De meern","De Meern","De Meern","Den Haag","Den Haag") 
RegionAbbreviation <- c("G4", "G4","G4","G4","G4","G4","G4","G4","G4","G4") 
Provider<- c("ALLEGO","Essent","EVBOX","Nuon","EVBOX","EVnet","Ballast Nedam", "Nuon","Alfen","EVnet") 
acces<- c(0,1,1,0,1,1,0,0,1,0) 

Data_locatie<- data.frame(CityChargeSessions,RegionAbbreviation,Provider,acces) 

CityChargeSessions <-c("Amsterdam" ,"Amsterdam" ,"Den Haag" , "Den Haag" ,"Rotterdam", "Rotterdam", "Rotterdam", "Utrecht" , "Utrecht" ) 
RegionAbbreviation <- c("G4", "G4","G4","G4","G4","G4","G4","G4","G4") 
Provider <- c("Essent","Nuon","Alfen","EVnet","Alfen","EVBOX", "EVnet","Ballast Nedam", "EVnet") 
kWh<- c(3366231.03, 7547896.10, 2535700.80, 245951.82, 62004.86, 3074192.86, 221362.13, 1272956.51, 281451.94) 

DF<- data.frame(CityChargeSessions,RegionAbbreviation,Provider,kWh) 

私の予想される出力は次のようになります。

CityChargeSessions <-c("Amsterdam" ,"Den Haag") 
RegionAbbreviation <- c("G4", "G4") 
Provider <- c("Essent","Alfen ") 
kWh<- c(3366231.03, 2535700.80) 


expected_output<- data.frame(CityChargeSessions,RegionAbbreviation,Provider,kWh) 

あなたは私を助けてもらえますか?

ありがとうございました!

マルタイン

+0

予想される出力は、これはexcatly私が探していたし、され – akrun

答えて

1

あなたは、データテーブルを使用して、次の操作を行うことができます:

require(data.table)  
setDT(Data_locatie) 
setkey(Data_locatie, "CityChargeSessions", "RegionAbbreviation", "Provider") 
setDT(DF) 
setkey(DF, "CityChargeSessions", "RegionAbbreviation", "Provider") 

allowed_combinations <- DF[Data_locatie[acces==1], nomatch=0][, acces:=NULL] 
not_allowed_combinations <- DF[Data_locatie[acces==0], nomatch=0][, acces:=NULL] 
+1

おかげでどのようなものです! –

+1

聞いてうれしいです:) –

関連する問題