Някой може ли да ми помогне по въпроса? Да предположим, че "p" е напълно екзогенно и следва равномерно разпределение. След това искам да генерирам "z", което е TRUE(=1) или FALSE(=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