Как я могу увеличить число внутри цикла while, пока мое текстовое выражение не станет неправильным - PullRequest
0 голосов
/ 13 мая 2019

Мне нужно увеличить число (n) внутри цикла while, но r делает это только один раз.После этого он останавливается

Я должен найти количество участников, чтобы мощность была> = 0,8 при моделировании.Поэтому я создал цикл while и начал с n = 100, сделал цикл for для вычисления мощности и увеличил n после этого.дано: нужна мощность 80% искали: размер выборки

n=100
crit.t<-qt(0.975,df=n-1)
obs_t<-c(NA,100)
power<-0

while(power<0.8){
  for (i in 1:100){
    SR<-rnorm(n,700,300)
    OR<-rnorm(n,750,300)
    obs_t[i]<-t.test(OR,SR,paired=FALSE,var.equal = TRUE)$statistic
    power<-mean(1-dnorm(n,crit.t-obs_t[i],300))
  }
n=n+1
}

print(n)

Ожидаемый: n = 566 фактический результат: n = 101

1 Ответ

1 голос
/ 13 мая 2019

Я выполнил ваш код: во время первой итерации (i=1) вы получаете power = 0.998, поэтому цикл while останавливается. Вот почему n = 100 + 1.

Почему ты ожидал чего-то еще?

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