如果缺少 var2,我需要创建一个类似于 var1 的变量,如果 var1 为空,则类似于 var2,如果两者没有丢失,则创建 var1 和 var 2 的平均值 ((var1+var2)/2),最后如果var1 和 var2 也都丢失了。
我有如下数据:
library(tidyverse)
df <- tibble(
var1 = c(1, 2, 3, 4, NA, NA, 3, 2),
var2 = c(3, 5, NA, 2, 3, NA, 4, NA)
)
结果应该是:
var1 var2 newvar
1 3 2
2 5 3.5
3 NA 3
4 2 3
NA 3 3
NA NA NA
3 4 3.5
2 NA 2
我尝试过使用主要的 R 重新编码函数,也尝试过使用 case_when:
df <- df %>% mutate (
newvar = case_when(
var1 == NA ~ var2,
var2 == NA ~ var1,
TRUE ~ (var1+var2)/2
)
)
不确定最后一行是否正确,但无论如何代码由于缺失而无法工作,它说:
mutate_impl(.data, dots) 中的错误:评估错误:下标分配中不允许使用 NA。