Для L oop в R замена значений объекта на каждой итерации - PullRequest
0 голосов
/ 18 февраля 2020

Я изо всех сил пытаюсь выяснить, как создать для l oop, в котором некоторые начальные объекты (u, l, h и y) и их значения обновляются и сообщаются на конец каждой итерации l oop. И что l oop принимает во внимание значения предыдущей итерации в качестве основы (например, после обновления вышеуказанных объектов, функция runif принимает обновленные значения u и l при рисовании q. Я продолжаю повторять один и тот же результат без изменений, и я не уверен, что может быть лучшим способом решения этой проблемы.

Заранее извиняюсь, поскольку я довольно плохо знаком с R и кодированием в целом.

reset = {
l = 0.1 #lower bound of belief in theta  
u = 0.9 #upper bound of belief in theta
h = 0.2 #lower legal threshold, below which an action is not liable
y = 0.8 #upper legal threshold, above which an action is liable 
}
### need 1-u <= h <= y <= 1-l  for each t along every path of play

period = c(1:100)   ## Number of periods in the iteration of the loop.

for (t in 1:length(period)) {
q = runif(1,min = l, max = u)  ### 1 draw of q from a uniform distribution
q 
  probg = function(q,l,u){(u - (1-q))/(u-l)} ### probability of being found guilty given q in the ambiguous region
  probg(q,l,u)

  probi = function(q,l,u){1-probg(q,l,u)} ### probability of being found innocent given q in the ambiguous region
  probi(q,l,u)

    ruling = if(q>=y | probg(q,l,u) > 1){print("Guilty")              ###Strict liability

  } else if(q<=h | probi(q,l,u) > 1) {print("Innocent")               ###Permissible

  } else if(q>h & q<y) {                                              ###Ambiguous region


  discovery = sample(c('guilty','not guilty'), size=1, replace=TRUE, prob=c(probg(q,l,u),probi(q,l,u)))  ### court discovering whether a particular ambiguous q is permissible or not

  } 
  discovery
  ruling

if(ruling == "not guilty") {u = 1-q} else if (ruling == "guilty") {l = 1-q} else (print("beliefs unchanged"))      
if(ruling == "not guilty"){h = 1 - u} else if (ruling == "guilty") {y = 1 - l}  else (print("legal threshold unchanged"))              #### legal adjustment and updating of beliefs in ambiguous region after discovery of liability


probg(q,l,u)
probi(q,l,u)
modelparam = c(l,u,h,y)
show(modelparam)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...