How to return row values that match column 'id' in both df1 and df2 but not column 'text' and return NA to the mismatch in column 'text'?

Below are my two dataframes, df1 and df2 df1 <- data.frame(id=c("632592651","633322173","634703802","634927873","635812953","636004739","636101211","636157799","636263106","636752420"),text=c("asdf","cat","dog","mouse","elephant","goose","rat","mice","kitty","kitten"),response=c("y","y","y","n","n","y","y","n","n","y")) id text response 1 632592651 asdf y 2 633322173 cat y 3 634703802 dog y 4 634927873 mouse n 5 635812953 elephant n 6 636004739 goose y 7 636101211 rat y 8 636157799 mice n 9 636263106 kitty n 10 636752420 kitten y df2… Read More How to return row values that match column 'id' in both df1 and df2 but not column 'text' and return NA to the mismatch in column 'text'?