Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Filtering using dplyr filter() on multiple conditions

Tags:

r

dplyr

I have a dataframe containing unique values of two variables:

df <- data.frame(V1=LETTERS,V2=c(1:26))

I'd like to filter another dataframe for values in df$V1 and corresponding value of df$V2. This is what I have tried which obviously doesn't produce the desired result:

df2 <- data.frame(V1=c('A','A','B','B','A'),
                    V2=c(1,2,2,3,4))
df2 %>% filter(V1 %in% unique(df$V1) & V2 %in% unique(df$V2))

The result I am expecting post filtering is:

  V1 V2
1  A  1
2  B  2

How do I achieve this?

like image 687
Dhiraj Avatar asked Sep 16 '25 10:09

Dhiraj


1 Answers

You can also use

df[df$V1 %in% unique(df2$V1),]

#   V1 V2
# 1  A  1
# 2  B  2

or

library(tidyverse)

df %>% filter(V1 %in% unique(df2$V1))

#   V1 V2
# 1  A  1
# 2  B  2

In both cases above, you'll get the rows of df where V1 of df matches the (unique) values of V1 of df2.

like image 200
AntoniosK Avatar answered Sep 19 '25 02:09

AntoniosK