How do you merge two data tables (or data frames) in `R` keeping the non-`NA` values from each matching column? The question [Merge data frames and overwrite values](https://stackoverflow.com/questions/16042380/merge-data-frames-and-overwrite-values "Merge data frames and overwrite values") provides a solution if each individual column is specified explicitly (as far as I can tell, at least). But, I have over 40 common columns between the two data tables, and it is somewhat random which of the two has an `NA` versus a valid value. So, writing `ifelse` statements for 40 columns seems inefficient.

Below is a simple example, where I'd like to join (`merge`) the two `data.table`s by the `id` and `date` columns:

```
dt_1 <- data.table::data.table(id = "abc",
                               date = "2018-01-01",
                               a = 3, 
                               b = NA_real_,
                               c = 4, 
                               d = 6,
                               e = NA_real_)
setkey(dt_1, id, date)

> dt_1
    id       date a  b c d  e
1: abc 2018-01-01 3 NA 4 6 NA

dt_2 <- data.table::data.table(id = "abc", 
                               date = "2018-01-01",
                               a = 3, 
                               b = 5,
                               c = NA_real_, 
                               d = 6,
                               e = NA_real_)
setkey(dt_2, id, date)
> dt_2
    id       date a b  c d  e
1: abc 2018-01-01 3 5 NA 6 NA

```

Here is my desired output:

```
> dt_out
    id       date a b c d  e
1: abc 2018-01-01 3 5 4 6 NA

```

I've also tried the `dplyr::anti_join` solution from [left\_join two data frames and overwrite](https://stackoverflow.com/questions/35637135/left-join-two-data-frames-and-overwrite) without success.