Я хочу запустить power.t.test с каждым значением дельта, чтобы вычислить необходимое количество выборок, а затем сохранить его в значение в векторе reps для замены Анна. Я попытался создать цикл for, но это изменилось бы только при сохранении повторений и использовало бы одно и то же значение дельта каждый раз. Есть ли способ, чтобы цикл for вызывал разные значения delta, даже если он находится внутри другой функции?Как установить диапазон дельта в power.t.test
delta = c(.25,.5,.75,1,1.25,1.5,1.75,2)
reps = c(NA,NA,NA,NA,NA,NA,NA,NA)
reps[1] <- power.t.test(n = NULL,
delta = delta[1],
sd = pop_sd,
sig.level = 0.01,
power = 0.90,
type = 'paired',
alternative = 'two.sided'
)$n
ans <- data.frame(delta/pop_sd,reps)
ans
Редактировать: Вот мой цикл, который получил меня ближе, чем я думаю.
for (x in delta){
reps[1:8] <- power.t.test(n = NULL, # make sure to fill in ALL of the ?
delta = delta[x],
sd = pop_sd,
sig.level = 0.01,
power = 0.90,
type = 'paired',
alternative = 'two.sided'
)$n
}
Редактировать 2: Я выяснил свою первоначальную ошибку. Мне нужно было использовать for (i in 1:8)
для вызова индексированных чисел от delta
и reps
.
for (i in 1:8){
reps[i] <- power.t.test(n = NULL, # make sure to fill in ALL of the ?
delta = delta[i],
sd = pop_sd,
sig.level = 0.01,
power = 0.90,
type = 'paired',
alternative = 'two.sided'
)$n
}
Давайте посмотрим ваш цикл 'for'. Звучит как опечатка, которую, вероятно, легко объяснить и исправить. – Gregor
Я добавил код для выше. Не знаю, как добавить его в комментарий. – James
Добавление его выше намного лучше, чем добавление его в комментарии. – Gregor