If you use data.tables
and key by the columns you want to match, then you can accomplish your goal in one line:
tData[tBounce, Bounced := 1L]
Here is the full process:
library(data.table)
keys <- c("Email", "Campaign")
tData <- data.table(testData, key=keys)
tBounce <- data.table(testBounce, key=keys)
tData[tBounce, Bounced := 1L]
Results:
tData
Email Manual Campaign Bounced Opened Clicked ClickThru Unsubscribed
1: block@quote.com EIFLS0LS 1 1 0 0 0 0
2: data@frame.com EIFLS0LS 1 0 0 0 0 0
3: ht@ml.com EIFLS0LS 1 1 0 0 0 0
4: stack@exchange.com EIFLS0LS 1 0 0 0 0 0
5: stack@overflow.com EIFLS0LS 1 1 0 0 0 0
6: tele@phone.com EIFLS0LS 1 0 0 0 0 0
>