I'd like to use df1 to update df2, to produce a data frame that looks like df3. Any help would be much appreciated.
df1 <- data.frame(ID=c("D-10003","D-10004"), date=c(2,2), length=c(22,45))
df2 <- data.frame(ID=c("D-10001","D-10003","D-10002","D-10004","D-10005"), date=c(1,NA,NA,NA,2), hair=c(2,3,NA,2,3))
df3 <- data.frame(ID=c("D-10001","D-10003","D-10002","D-10004","D-10005"), date=c(1,2,NA,2,2),hair=c(2,3,NA,2,3))
I've been trying various variations on this, but it always seems to overwrite legitimate entries (eg for ID D-10001, date should remain 1), and I have no clue as to why.
df2$date<-df1[match(df2$ID, df1$ID),2]