有两个条件使用 ifelse 的 R 函数吗

Is there a R function for using ifelse with 2 conditions

这是我的数据样本

a<-c(NA,NA,NA,65,75,85)
b<-c(12,15,22,65,20,30)
c<-(12,15,22,65,75,85)
data<-data.frame(a,b,c)

我正在尝试创建一个新变量 d,这样如果 a=NA 那么 b,如果 a=b 那么 a 最后,如果 a>b 那么 a。

我的最终数据d<-c(12,15,22,65,75,85)

谢谢

这是使用 dplyr::case_when 完成的操作 请注意,在此代码中,如果 a < b 将产生 NA 值。

library(dplyr)

data %>%
  mutate(d = case_when(
    is.na(a) ~ b,
    a == b ~ a,
    a > b ~ a
  ))
#>    a  b  c  d
#> 1 NA 12 12 12
#> 2 NA 15 15 15
#> 3 NA 22 22 22
#> 4 65 65 65 65
#> 5 75 20 75 75
#> 6 85 30 85 85

reprex package (v2.0.0)

于 2021-05-19 创建