我想用来dplyr::coalesce查找包含多对变量的数据框中变量对之间的第一个非缺失值。目标是创建一个新的数据帧,现在每对变量只有一个副本(没有 NA 值的合并变量)。
这是一个例子:
df <- data.frame(
A_1=c(NA, NA, 3, 4, 5),
A_2=c(1, 2, NA, NA, NA),
B_1=c(NA, NA, 13, 14, 15),
B_2=c(11, 12, NA, NA, NA))
Expected output:
A B
1 11
2 12
3 13
4 14
5 15
Run Code Online (Sandbox Code Playgroud)
我猜测可以使用基于正则表达式的混合dplyr::coalesce,dplyr::mutate_at但我不知道该怎么做。有没有办法用 tidyverse 语法来完成这个任务?
谢谢!
编辑:感谢大家的回答!但是,我应该包含变量的命名约定,以便于将您的答案转移到我的实际问题上。对此我感到很抱歉。我的变量是地球化学变量,由两部分命名(化学元素名称加核心名称)。
示例:Al_TAC4.25.275其中Al是元素,TAC4.25.275是核心。我想为每个元素(名称的第一部分)合并来自 3 个不同核心(名称的第二部分)的数据。我有 25 对元素需要合并。