0

すべての情報を1つのテーブルに保存して、ループの最後に印刷できるようにする方法を確認しようとしています。使用しているコードは次のとおりです

 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 変数に格納したいのですが、現時点では、一度に 1 つの反復を格納する方法しか知りません。すべての反復を保持するためにテーブルとして保存するにはどうすればよいですか?

このようなもの

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
4

1 に答える 1

1

答えを得る最も簡単な方法は、設定することです

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")

必要な列名を取得します。

于 2013-10-29T17:35:49.370 に答える