无法将循环输出存储在R中

时间:2018-07-20 18:49:14

标签: r loops

我正在尝试存储循环输出。但是,我的数据集很大,当我尝试查看它时,它会使Rstudio崩溃。我尝试了不同的技术,例如library(iterators)library(foreach)中的函数,但是它没有按照我想要的去做。我试图从主表(表A)(行数54000)中获取一行,然后从另一个较小的表(表B)(行数= 6)中获取一行。我也看过Storing loop output in a dataframe in R,但实际上并不允许我查看结果。

代码从表A的第一行开始,然后对其进行6次遍历表B,然后输出每次迭代的结果,然后移至表A的第二行。因此,我的最终数据集应包含324000(54000 * 6)个观测值。

下面的代码为我提供了正确的观察结果(但我无法查看它是否正确地计算了值)以及表A和表B的摘要。

output_ratios <-  NULL

for (yr in seq(yrs)) {
  if (is.na(yr) == 'TRUE') {
    numerator=0
    numerator1=0
    numerator2=0
    denominator=0
  } else {
    numerator=Table.B[Table.B$PERIOD == paste("PY_", yr, sep=""), c("1")]
    denominator=Table.B[Table.B$PERIOD == paste("PY_", yr, sep=""), c("2")]
    denom=Table.A[, "1"] + (abs(Table.A[, "1"])*denominator)
    num=Table.A[, "2"] + (abs(Table.A[, "2"])*numerator)
    new.data$1=num
    new.data$2=denom
    NI=num / denom
    NI_ratios$NI=c(NI)
    output_ratios <<- (rbind(output_ratios, NI))
  }
}

表B:

        PERIOD     1          2                3          4          5
1          PY_1  0.21935312 -0.32989691       0.12587413 -0.28323699 -0.04605116
2          PY_2  0.21328526  0.42051282      -0.10559006  0.41330645  0.26585064
3          PY_3 -0.01338112 -0.03971119      -0.06641667 -0.08238231 -0.05323772
4          PY_4  0.11625091  0.01127819       0.07114166  0.08501516  0.55676498
5          PY_5 -0.01269256 -0.02379182       0.39115278 -0.03716100  0.63530682
6          PY_6  0.69041864  0.51034273       0.59290357  0.78571429 -0.48683736 

表A:

1      2      3     4
1     25     3657    2258
2     23     361361  250    
3     24     35      000 
4     25     362     502      
5     25     1039    502 

非常感谢您的帮助。

0 个答案:

没有答案