I know this is a duplicate Q but I can\'t seem to find the post again
Using the following data
df <- data.frame(A=c(1,1,2,2),B=c(NA,2,NA,4),C=c(3,         
        
I haven't figured out how to put the coalesce_by_column function inside the dplyr pipeline, but this works:
coalesce_by_column <- function(df) {
  return(coalesce(df[1], df[2]))
}
df %>%
  group_by(A) %>%
  summarise_all(coalesce_by_column)
##       A     B     C     D     E
##       
## 1     1     2     3     2     5
## 2     2     4     5     3     4
     Edit: include @Jon Harmon's solution for more than 2 members of a group
# Supply lists by splicing them into dots:
coalesce_by_column <- function(df) {
  return(dplyr::coalesce(!!! as.list(df)))
}
df %>%
  group_by(A) %>%
  summarise_all(coalesce_by_column)
#> # A tibble: 2 x 5
#>       A     B     C     D     E
#>       
#> 1     1     2     3     2     5
#> 2     2     4     5     3     4