2016-08-17 6 views
-1

Ich habe eine sehr große Datenmenge, die viele Spalten und Zeilen enthält. Nicht jeder Mitarbeiter darf alle Daten sehen. Basierend auf dem Datenrahmen Data_locatie möchte ich meinen ursprünglichen Datenrahmen DF unterteilen. Die Spalte acces sagt mir, ob der Mitarbeiter diese Kombination sehen kann, ja (= 1) oder Nein (= 0). Ich habe ein reproduzierbares Beispiel erstellt, das Sie verwenden können.R Teilmenge Daten durch mehrere Bedingungen in jeder Zeile

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) 

Meine erwartete Ausgabe ist:

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) 

Können Sie mir helfen?

Danke für Ihre Hilfe!

Martijn

+0

Was ist die erwartete Ausgabe – akrun

Antwort

1

Sie könnten die Datentabelle verwenden und wie folgt vorgehen:

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

Dank dieser excatly ist wurden die ich suchte !! –

+1

Froh, es zu hören :) –

Verwandte Themen