各デルタ値でpower.t.testを実行して必要なサンプル数を計算し、それをrepsベクトルの値に保存して置換するNA。私はforループを作成しようとしましたが、repsが保存されていた場所だけを変更し、毎回同じデルタ値を使用しました。別の関数の中にあっても、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:私は自分の間違いを理解しました。 delta
とreps
からインデックス番号を呼び出すには、for (i in 1:8)
を使用する必要がありました。
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