2016-08-17 2 views
-1

У меня очень большой набор данных, который содержит много столбцов и строк. Не каждому сотруднику разрешено видеть все данные. На основе dataframe Data_locatie Я хочу подмножить свой исходный dataframe 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

Что такое ожидаемый результат – 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

Рад это услышать :) –