在r中创建循环内部的表

时间:2013-10-29 15:43:51

标签: r

我正在尝试查看如何将所有信息存储在一个表中,以便我可以在循环结束时打印它,这是我正在使用的代码

 trips = 1000   
f1 = 0
f2 = 0
c1 = 18
c2= 12

 #Incremental with proportional factors
 factors = c(0,.35,0.25,0.20,.15,.05)
 n = 6
 for(i in 1:n)
 {
   if(c2 < c1)
   {
     increment = trips * factors[i]
     f2 = f2 + increment
     c2 = 12 + (.01*f2)     
    }
   else
  {
    increment = trips * factors[i]
    f1 = f1 + increment
    c1 = 18 + (.005*f1)
  }
  IncrementalTable = c(i - 1,increment,f2,c2,f1,c1)

}

我想将每次迭代存储在IncrementalTable变量中,此刻我只知道如何存储一次迭代。如何将其存储为表以保留所有迭代?

类似这样的事情

Incremental Table =    N  I    F2   C2    F1   C2
                       0  0    0    12    0    18
                       1 350   350  15.5  0    18.0
                       2 250   600  18    0    18
                       3 200   600  18    200  19
                       4 150   750  19.5  200  19
                       5 50    750  19.50 250  19.25

1 个答案:

答案 0 :(得分:0)

获得答案的最简单方法是设置

IncrementalTable<-c()

在循环的顶部,然后用以下代码替换循环的最后一行:

IncrementalTable <- rbind(IncrementalTable,c(i - 1,increment,f2,c2,f1,c1))

结果:

> IncrementalTable
     [,1] [,2] [,3] [,4] [,5]  [,6]
[1,]    0    0  750 19.5  250 19.25
[2,]    1  350  750 19.5  600 21.00
[3,]    2  250 1000 22.0  600 21.00
[4,]    3  200 1000 22.0  800 22.00
[5,]    4  150 1000 22.0  950 22.75
[6,]    5   50 1050 22.5  950 22.75

这将为您提供一个简单的矩阵。然后你可以使用

colnames(IncrementalTable)<-c("R","I","F2","C2","F1","C2")

获取所需的列名。