[英]How to set a range of delta in power.t.test
我想對每個增量值運行power.t.test以計算所需的樣本數,然后將其保存為代表向量中的值以替換NA。 我試圖建立一個for循環,但是它只會改變代表保存的位置,並且每次都使用相同的增量值。 有沒有辦法讓for循環在另一個函數內部調用不同的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
}
嘗試這個!
tmp_reps = lapply(1:length(delta), function(x){
power.t.test(n = NULL,
delta = delta[x],
sd = pop_sd,
sig.level = 0.01,
power = 0.90,
type = 'paired',
alternative = 'two.sided')$n
})
reps <- unlist(tmp_reps)
ans <- data.frame(delta / pop_sd, reps)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.