Помимо опции merge
, предложенной @akrun, вы также можете использовать операторы ifelse()
.Вот пример:
df1 <- data.frame(Firstname = c("Eve", "Jon", "Steve"),
Lastname = c("Jackson", "Smith", "Jackson"),
Email = c("evejackson@yahoo.co.uk", "johnsmith@gmail.com",
"stevejackson@yahoo.com"),
stringsAsFactors = FALSE)
# df1
Firstname Lastname Email
1 Eve Jackson evejackson@yahoo.co.uk
2 Jon Smith johnsmith@gmail.com
3 Steve Jackson stevejackson@yahoo.com
df2 <- data.frame(Firstname = c("Jon", "Samantha", "Steve"),
Lastname = c('Smith', "Andrew", "Jackson"),
Email = c("johnsmith@gmail.com", "samanthaandrew@yahoo.co.uk",
"stevejackson@yahoo.co.uk"),
stringsAsFactors = FALSE)
# df2
Firstname Lastname Email
1 Jon Smith johnsmith@gmail.com
2 Samantha Andrew samanthaandrew@yahoo.co.uk
3 Steve Jackson stevejackson@yahoo.co.uk
# check if Emails in df1 are also in df2 and then if Firstname and Lastname are the
# same in df1 and df2
df1$Status <- ifelse(df1$Email %in% df2$Email, "Registered",
ifelse(df1$Firstname == df2$Firstname &
df1$Lastname == df2$Lastname, "Registered",
""))
df1 # output
Firstname Lastname Email Status
1 Eve Jackson evejackson@yahoo.co.uk
2 Jon Smith johnsmith@gmail.com Registered
3 Steve Jackson stevejackson@yahoo.com Registered