我有一个这样的 DF:
df_1 <- data_frame(
id = c(1, 1, 2, 2, 3),
Class1 = c("C1", NA, "C3", "C3", NA),
Class2 = c(NA, "C2", NA, NA, "C4")
)
Run Code Online (Sandbox Code Playgroud)
> df_1
# A tibble: 5 x 3
id Class1 Class2
<dbl> <chr> <chr>
1 1 C1 NA
2 1 NA C2
3 2 C3 NA
4 2 C3 NA
5 3 NA C4
Run Code Online (Sandbox Code Playgroud)
我需要一个最终输出:
> df_1
# A tibble: 5 x 3
id Class1 Class2
<dbl> <chr> <chr>
1 1 C1 C2
2 2 C3 NA
3 3 NA C4
Run Code Online (Sandbox Code Playgroud)
我正在尝试分组和总结:
df_1 %>% group_by(id) %>% summarise_at(vars(Class1, Class2), ~ unique(.))
Run Code Online (Sandbox Code Playgroud)
# A tibble: 4 x 3
# Groups: id [3]
id Class1 Class2
<dbl> <chr> <chr>
1 1 C1 NA
2 1 NA C2
3 2 C3 NA
4 3 NA C4
Run Code Online (Sandbox Code Playgroud)
NA如果任一列具有nonNA值,我如何删除值?我找不到任何处理字符列的示例。
dplyr::coalesce 工作:
df_1 %>%
group_by(id) %>%
summarise_at(vars(Class1, Class2), function(x) coalesce(!!!x))
Run Code Online (Sandbox Code Playgroud)
给
# A tibble: 3 x 3
id Class1 Class2
<dbl> <chr> <chr>
1 1 C1 C2
2 2 C3 NA
3 3 NA C4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |