首页 > 解决方案 > 如何创建一个能够区分具有相同值的两个对象的条件?

问题描述

我正在尝试创建一个代码,从两个对象中进行采样,然后根据采样的值运行条件。我的问题是,在采样的对象中,它们可能具有相同的值。因此,虽然只有其中一个对象被采样,但我的条件语句似乎适用于所有具有相同值的对象......(我希望这是有道理的)。

这是我试图用我的实际模型做的一个非常简化的表示:


x1=5

x2=5


 x = sample(c(x1,x2), size=1, replace=TRUE, prob=(c(0.9,0.1)))

 if(x==x1){print("yes")} else{print("hmm")}

 if(x==x2){print("no")} else {print("it worked!")}

在我的实际模型中,对象不太可能具有相同的值,但这是可能的。所以我想知道是否有办法避免上述问题,这样即使对象采用的值可能相同,条件语句仍然能够具体区分一个特定对象。

谢谢

标签: rif-statementsample

解决方案


What stops you from sampling the object name, then later evaluating it? For example:

x1=5
x2=5
x = sample(c("x1","x2"), size=1, replace=TRUE, prob=(c(0.9,0.1)))

consider_x <- function(y){
print(paste0(y," was sampled."))
print(paste0("Its value is ",get(y)))
}

consider_x(x)
[1] "x2 was sampled."
[1] "Its value is 5"

推荐阅读