簡體   English   中英

如何在power.t.test中設置增量范圍

[英]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)deltareps調用索引編號。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM