微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有 R 函数用于在 2 个条件下使用 ifelse

如何解决是否有 R 函数用于在 2 个条件下使用 ifelse

这是我的数据样本

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

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

我的最终数据d<-c(12,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 年 5 月 19 日创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。