有两个条件使用 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 创建
这是我的数据样本
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 创建