I have two data tables, DT1 and DT2:
set.seed(1) DT1<-data.table(id1=rep(1:3,2),id2=sample(letters,6), v1=rnorm(6), key=\"id2\") DT1 ## id1 id2
This is similar to mnel's solution but uses ifelse instead of a second key.
ifelse
DT1[DT2, v1 := ifelse(id1==3, i.v1, v1),nomatch=0]