在r中存储来自多个for循环序列迭代的值

时间:2018-03-15 15:18:16

标签: r for-loop

我使用两个for循环来运行一些模拟。每次迭代增加N 50,其他迭代增加N,模拟运行1000次。然而,根据我目前的结果,结果数据帧不会为每个不同的N序列值保存输出,而是仅显示序列中N的最后一个值的最终输出值,在这种情况下,N =的值500。

所以我想知道是否有办法制作一个数据帧来保存所有不同N值的所有输出值?

GC overhead limit exceeded

1 个答案:

答案 0 :(得分:0)

要存储循环中的值,首先需要初始化对象,然后可以通过指定索引一次添加一个值。

# create an empty data frame
P <- data.frame(PValue = numeric(), NValue=numeric())
P2 <- list()    

for (N in 1:10){
  for (i in 1:10){
    P[i, 1] <- pchisq(i, df=3)
    P[i, 2] <- N
  }
  # store each output from the inner loop in a list
  P2[[N]] <- P
}
# collapse the list down to a single data frame
final <- do.call(rbind, P2)