Conditional binary join and update by reference using the data.table package
Copying from Arun's updated answer here
TK[venue_id %in% 1:2, New_id := DFT[.SD, New_id]][]
# venue_id DFT_id New_id
# 1: 1 1 3
# 2: 2 1 3
# 3: 1 2 4
# 4: 3 2 9401
# 5: 2 3 2
# 6: 3 3 456
His answer gives the details of what is going on.
Here's a very simple approach:
TK[DFT, New_id := ifelse(venue_id %in% 1:2, i.New_id, New_id)][]
# venue_id DFT_id New_id
# 1: 1 1 3
# 2: 2 1 3
# 3: 1 2 4
# 4: 3 2 9401
# 5: 2 3 2
# 6: 3 3 456
I haven't checked, but I suspect the other answer is faster.