【发布时间】:2026-02-09 17:20:04
【问题描述】:
我需要结合rowSums 和ifelse 来创建一个新变量。我的数据如下所示:
boss var1 var2 var3 newvar
1 NA NA 3 NA
1 2 3 3 8
2 NA NA NA 0
2 NA NA NA 0
2 NA NA NA 0
1 1 NA 2 3
如果boss==1,并且var1到var3的缺失值不止一个,newvar应该是NA,否则应该是var1+var2+var3的结果
如果boss==2,newvar 应自动为0。
到目前为止,我已经能够使用dplyr解决部分问题:
mutate(newvar=rowSums(.[,2:4],na.rm=TRUE) +
ifelse(rowSums(is.na(.[,2:4]))>1 & boss==2,NA,0))
mutate(newvar=ifelse(boss==2,0,NA)
但是,我正在努力将两者结合起来。非常感谢任何帮助。
【问题讨论】:
标签: r if-statement dplyr