Consider the example (my actual datasets are larger) where I have two datasets: one where people are contained in groups and another where people are contained in houses.
Dataset 1:
Group Person
Group1 Andy
Group2 Andy
Group2 Richard
Group3 Richard
Group4 Andy
Group4 Richard
Group4 Meg
Dataset 2:
House Person
HouseA Andy
HouseA Richard
HouseB Andy
HouseB Richard
HouseB Meg
From this example, one can see that Group 2 and House A both contain Andy and Richard. Group 4 and House B both contain Andy, Richard and Meg. My desired output is:
Group House Person
Group2 HouseA Andy
Group2 HouseA Richard
Group4 HouseB Andy
Group4 HouseB Richard
Group4 HouseB Meg
Reproducible data:
df1 <- structure(list(Group = c("Group1", "Group2", "Group2", "Group3",
"Group4", "Group4", "Group4"), Names = c("Andy", "Andy", "Richard",
"Richard", "Andy", "Richard", "Meg")), class = "data.frame", row.names = c(NA,
-7L))
df2 <- structure(list(House = c("HouseA", "HouseA", "HouseB", "HouseB",
"HouseB"), Names = c("Andy", "Richard", "Andy", "Richard", "Meg"
)), class = "data.frame", row.names = c(NA, -5L))