Кто-нибудь может помочь мне в этом? Предположим, что «р» является полностью экзогенным и подчиняется равномерному распределению. Затем я хочу сгенерировать «z», который является фиктивным ИСТИНА (= 1) или ЛОЖЬ (= 0) и имеет свойство, состоящее в том, что суммирование каждых трех элементов (1-3, 4-6, 7-9,. .., 58-60) в "z" должно быть больше 0.
Например, если я получаю "z", например {1 0 0 1 1 0 0 0 0 0 1 0...}, я надеюсь повторить цикл снова (поскольку sum(z[7:9])=0) чтобы нарисовать другую «ошибку», пока я не получу новую «z», например {1 1 0 0 0 1 0 1 0 1 0 0...}, где все суммы для каждых трех элементов больше 0. Я использую код следующее. Где я не прав?
set.seed(005)
p<-runif(60, 0, 1)
for (i in 1:20) {
repeat {
error= -0.2*log((1/runif(60, 0, 1))-1) # a random component
z=(p<0.5+error) # TRUE/FALSE condition
z=replace(z, z==TRUE, 1) # replace z to 1 if z is true, else z=0
if (sum(z[(3*i-2):(3*i)])>0) {break}
}
}
for
... вы хотели? Можете ли вы описать, почему показанный вами код работает неправильно? - person Justin   schedule 26.09.2013