在r中的数据帧中循环遍历列索引

时间:2018-12-10 09:17:39

标签: r loops

我有两列数据。 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)
 }

1 个答案:

答案 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)])中增加列数。您的数据框有两列,您只需要增加行号。我在代码中解决了这个问题。