[英]In R, how can I get the value of an addition rather than NA
在下面的示例中,我想要加法的值而不是NA
。 我怎样才能做到这一点?
set.seed(7354)
a <- rbinom(1,1,.5)
x <- ifelse(a==0, rexp(1, 1/50), NA )
y <- ifelse(a==1, rexp(1, 1/100), NA)
b <- ifelse(a==1, rbinom(1,1,.5), NA)
z1 <- ifelse(b==1, rexp(1, 1/100), NA)
z2 <- ifelse(b==0, rexp(1, 1/190), NA)
s <- (1-a)*x + a *(y + b * z1 + (1-b) * z2)
我想要的输出是s = 968.8501
。
做这个
s = c( (1-a)*x, a*y, a*b*z1, a*(1-b)*z2 )
s = sum(s, na.rm = T)
这将使您拥有NA,但它们不会影响没有条件的总和。
set.seed(7354)
a <- rbinom(1,1,.5)
x <- (a==0) * rexp(1, 1/50)
y <- (a==1) * rexp(1, 1/100)
b <- (a==1) * rbinom(1,1,.5)
z1 <- (b==1) * rexp(1, 1/100)
z2 <- (b==0) * rexp(1, 1/190)
(1-a)*x + a *(y + b * z1 + (1-b) * z2)
# [1] 968.8501
如果你这样做是为模拟或引导循环的一部分,这将是比一堆快得多 ifelse
秒。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.