如何在 R 中的 ifelse 中使用加法?
How to use addition within ifelse in R?
我有一个 df data.frame
,它包含 4 个变量 a, b, c and d
和 100 个观察值。变量 b and c
中存在缺失值
set.seed(123)
a <- runif(100, 0.005, 2.3)
b <- runif(100, 0.2, 4.3)
c <- runif(100, 0.03, 1.6)
d <- runif(100, 0.05, 2.4)
df <- data.frame(a, b, c, d)
df[c(1:4,8:10, 30:35, 60:65,90:97), c(2,3)]<-NA
head(df)
# a b c d
#1 0.6649904 NA NA 1.89375188
#2 1.8141603 NA NA 0.07216028
#3 0.9436020 NA NA 1.88080482
#4 2.0315249 NA NA 1.76406803
#5 2.1633724 2.179900 0.6620401 1.53080985
#6 0.1095522 3.850436 1.4119871 1.18014045
我想创建列 E
,其中
if c
= NA
==> E
= a+d
else E
= a + b + c
我尝试使用 ifelse
进行操作,如下所示
df$E <- 0
df$E <- ifelse(df$c == NA,
df$a + df$d,
df$a+df$b+df$c)
代码运行但 E
列被 NA
填充。如有任何建议,我们将不胜感激?
简单地说:
df$E <- ifelse(is.na(df$c),
df$a + df$d,
df$a+df$b+df$c)
我有一个 df data.frame
,它包含 4 个变量 a, b, c and d
和 100 个观察值。变量 b and c
set.seed(123)
a <- runif(100, 0.005, 2.3)
b <- runif(100, 0.2, 4.3)
c <- runif(100, 0.03, 1.6)
d <- runif(100, 0.05, 2.4)
df <- data.frame(a, b, c, d)
df[c(1:4,8:10, 30:35, 60:65,90:97), c(2,3)]<-NA
head(df)
# a b c d
#1 0.6649904 NA NA 1.89375188
#2 1.8141603 NA NA 0.07216028
#3 0.9436020 NA NA 1.88080482
#4 2.0315249 NA NA 1.76406803
#5 2.1633724 2.179900 0.6620401 1.53080985
#6 0.1095522 3.850436 1.4119871 1.18014045
我想创建列 E
,其中
if c
= NA
==> E
= a+d
else E
= a + b + c
我尝试使用 ifelse
进行操作,如下所示
df$E <- 0
df$E <- ifelse(df$c == NA,
df$a + df$d,
df$a+df$b+df$c)
代码运行但 E
列被 NA
填充。如有任何建议,我们将不胜感激?
简单地说:
df$E <- ifelse(is.na(df$c),
df$a + df$d,
df$a+df$b+df$c)