我想要R编程的帮助来填充col4 col4 = col1,如果col1为NA,则col4 = col2,如果col1和col2为NA,则col4 = col3
id col1 col2 col3
1 10 NA NA
2 NA 12 NA
3 NA NA 13
4 NA NA 1
5 2 3 NA
答案:
id col4
1 10
2 12
3 13
4 1
5 2
答案 0 :(得分:1)
使用coalesce
中的dplyr
轻松完成。此解决方案适用于N列:
library(dplyr)
data %>%
mutate(col4 = coalesce(!!!data[-1]))
<强>结果:强>
id col1 col2 col3 col4
1 1 10 NA NA 10
2 2 NA 12 NA 12
3 3 NA NA 13 13
4 4 NA NA 1 1
5 5 2 3 NA 2
数据:强>
data = read.table(text = "id col1 col2 col3
1 10 NA NA
2 NA 12 NA
3 NA NA 13
4 NA NA 1
5 2 3 NA", header = T)
备注:强>
!!!
不应与否定运算符!
混淆(可理解的混淆)。它是rlang
或tidyverse
(也可用于dplyr
)的一部分的运算符,它启用显式拼接。
这意味着,我将coalesce
(或列表的元素element作为coalesce(data[-1])
的输入。所以这个:
data[-1]
实际上相当于:
coalesce
以这种方式编写它的好处是,您不必知道列名,也不必知道要开始的列数。
答案 1 :(得分:0)
使用Outlook.Application
或How to implement coalesce in R?上的任何答案:
ThisOutlookSession