如何合并R中的行?

How to merge rows in R?

我有这样的数据:

 name    A_1 B_1 A_2 B_2
"Jack"    20  NA  15  NA
"Jack"    NA  12  NA  30
"James"   22  NA  14  NA
"James"   NA  32  NA  20

我想像这样合并行:

name    A_1 B_1 A_2 B_2
"Jack"  20  12  15  30
"James" 22  32  14  20

我该怎么做?

首先我们按名称分组,然后填充所有其他有缺失数据的列,先向下,然后向上,最后取唯一记录。

library(dplyr)
library(tidyr)

df1 %>%
  group_by(name) %>% 
  fill(everything(), .direction = "downup") %>% 
  distinct()

# A tibble: 2 x 5
# Groups:   name [2]
  name    A_1   B_1   A_2   B_2
  <chr> <int> <int> <int> <int>
1 Jack     20    12    15    30
2 James    22    32    14    20