Как создать условное выражение, способное различать guish между двумя объектами, имеющими одинаковое значение? - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь создать код, в котором я беру выборку из двух объектов, а затем запускаю условное выражение на основе значения, из которого производится выборка. Моя проблема в том, что среди выбранных объектов они могут иметь одинаковое значение. Поэтому, хотя отбирается только один из этих объектов, мое условное утверждение, кажется, выполняется для всех объектов, имеющих одинаковое значение ... (надеюсь, это имеет смысл).

Вот очень упрощенный пример того, что я пытаюсь сделать с моей реальной моделью:


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!")}

В моей реальной модели весьма маловероятно, что объекты принимают одинаковое значение , но это возможно. Итак, я хочу знать, есть ли способ избежать проблемы, как описано выше, такой, что даже если значения, принимаемые объектами, могут быть одинаковыми, условный оператор все же способен специфически различать guish один конкретный объект над другой.

Спасибо

1 Ответ

0 голосов
/ 25 марта 2020

Что мешает вам выбрать имя объекта, а затем оценить его? Например:

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"
...