0
我想运行每个delta值的power.t.test来计算必要的采样数,然后将其保存到reps向量中的值以替换一个NA。我试图做一个for循环,但它只会改变reps被保存的地方,并且每次都使用相同的delta值。有没有办法让for循环调用不同的delta值,即使它在另一个函数内部?如何在power.t.test中设置delta范围
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循环,这让我想得最接近。
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