我有两列数据。 headsTails data looks like this。我想创建一个循环,以便每次将每行的值分别输入n1和n2并将output(result2)附加到矢量powercal中。 我
powercal <- c()
for (i in seq_along(headsTails)){
result2 <- pwr.2p2n.test(h=0.3, n1=headsTails[i,i], n2=headsTails[i,(i+1)], sig.level = 0.05,power = NULL, alternative = "greater")
powercal <- append(result2$power, powercal)
}
答案 0 :(得分:0)
我相信这可以解决您的问题:
powercal <- sapply(seq_len(nrow(headsTails)), function(i){
pwr.2p2n.test(h=0.3, n1=headsTails[i,1], n2=headsTails[i,2],
sig.level = 0.05,power = NULL, alternative = "greater")
})
首先:在R中,使用循环将向量中的值累加从来都不是一个好主意。要么创建具有所需输出长度的虚拟向量,然后替换每个值,要么更好地仍然使用Apply函数,如
第二:循环中的代码还将在每次迭代(n1=headsTails[i, i], n2=headsTails[i, (i+1)]
)中增加列数。您的数据框有两列,您只需要增加行号。我在代码中解决了这个问题。