newcomer
newcomer

Reputation: 47

validate values in two data frame

I have two data frames with approx. 1 million records now I am trying to check if Uniq_ID present in df2 and not present in df1 for city = mum. then mutate df2 with 1 or 0 for true or false.

df1 <- data.frame(ID =c("DEV2962","KTN2252","ANA2719","ITI2624","DEV2698","HRT2921","","KTN2624","ANA2548","ITI2535","DEV2732","HRT2837","ERV2951","KTN2542","ANA2813","ITI2210"),
                  city=c("del","mum","mum","pun","bang","mum","triv","vish","mum","mum","bang","vish","mum","kol","noi","mum"))
df2 <- data.frame(Uniq_ID =c("DEV2962","KTN2252","ANA2719","H7236","DEV2692","HRT2921","","KTN2624","ANA2548","ITI2535","DEV2732","HRT2831","ERV2951","KTN2542","ANA2813","ITI2210"),
                  city=c("del","mum","bho","pun","mum","chen","mum","vish","mum","mum","bang","mum","mum","kol","noi","mum"))


Upvotes: 0

Views: 50

Answers (2)

Karthik S
Karthik S

Reputation: 11584

We can use base R in that case. Does this work:

> df2$ID_not_in_df1 <- ifelse(!df2$Uniq_ID %in% df1$ID & df2$city == 'mum', 1 ,0)
> df2
   Uniq_ID city ID_not_in_df1
1  DEV2962  del             0
2  KTN2252  mum             0
3  ANA2719  bho             0
4    H7236  pun             0
5  DEV2692  mum             1
6  HRT2921 chen             0
7           mum             0
8  KTN2624 vish             0
9  ANA2548  mum             0
10 ITI2535  mum             0
11 DEV2732 bang             0
12 HRT2831  mum             1
13 ERV2951  mum             0
14 KTN2542  kol             0
15 ANA2813  noi             0
16 ITI2210  mum             0
> 

Upvotes: 1

Ronak Shah
Ronak Shah

Reputation: 389047

You can assign 1 to Uniq_ID in df2 which is not present in df1 and which has city = 'mum'.

df2$ID_not_in_df1 <- +(!df2$Uniq_ID %in% unique(df1$ID) & df2$city == 'mum')
df2

#   Uniq_ID city ID_not_in_df1
#1  DEV2962  del             0
#2  KTN2252  mum             0
#3  ANA2719  bho             0
#4    H7236  pun             0
#5  DEV2692  mum             1
#6  HRT2921 chen             0
#7           mum             0
#8  KTN2624 vish             0
#9  ANA2548  mum             0
#10 ITI2535  mum             0
#11 DEV2732 bang             0
#12 HRT2831  mum             1
#13 ERV2951  mum             0
#14 KTN2542  kol             0
#15 ANA2813  noi             0
#16 ITI2210  mum             0

Upvotes: 0

Related Questions