Я пытаюсь настроить процесс, используя while
l oop, чтобы мой код последовательно выбирал среди определенных xd[i]
до того, как один конкретный xd[i]
станет равным x.
Я знаю, что было бы более эффективно поместить все под единицу для l oop (кроме времени l oop), но я пытаюсь создать это шаг за шагом. Прямо сейчас я застрял на части while
l oop. Я не могу запустить эту часть кода без сбоя R, или, если он не обработает sh, он продолжает непрерывную выборку, пока я не остановлю его вручную. Как я могу изменить мой while
l oop таким образом, чтобы он производил выборку по вектору xd, пока один из элементов xd не совпадет с x?
Спасибо
reset1 = {
a = 0.3 #lower legal threshold
b = 0.9 #upper legal threshold
x = 0
theta = runif(1,min = a, max = b)
theta
A = 5 ## monetary value of harm from
maxw = 2*A
minw = 0
wbar = (maxw+minw)/2 ##average cost
wbar
xd = c(1,2,3)
w = c(1,2,3)
}
for (i in 1:length(xd)){w[i] = runif(1, min = 0, max = 2)} #trying to make it create a w for each person
##Drivers problem: pick the x that will minimize your cost
for(i in 1:length(xd)){xd[i] = min(c(1-(w[i]/(2*A)),((2+b)-sqrt(b^2-2*b+1+3*(w[i]/A)*(b-a)))/3,b))}
xd
for(i in 1:length(xd)){proba = function(xd){(xd-1)^2}}
proba(xd) #ith individual probability of getting in an accident given their xd[i]
proba(xd[c(1:3)])
probn = 1 - proba(xd) #probability of not getting in an accident given driveri's effort level
probn
while (any(x!=xd)) {x = sample(c(xd[c(1,2,3)],0,0,0),size = 1, replace = TRUE, prob = c(proba(xd), probn)) ###the x is selected based on which ever x resulted in an accident
}
show(x)