2017-01-24 67 views
-1

我希望你們做得很好。在R中使用for循環

我有一個快速的問題。這裏是我的代碼:

for(i in 2:49){ 
    PriceFun[i] = approxfun(data[i]$FUEL_PRICE_REAL ~ data[i]$dd) 

    PriceFromDate[i] = function(x) { 
    round(PriceFun[i](x), 3) } 
} 

我所要的輸出是什麼:

PriceFun2 = approxfun(data2$FUEL_PRICE_REAL ~ data2$dd) 

PriceFromDate2 = function(x) { 
    round(PriceFun2(x), 3) } 

PriceFun3 = approxfun(data3$FUEL_PRICE_REAL ~ data3$dd) 

PriceFromDate3 = function(x) { 
    round(PriceFun3(x), 3) } 

等等...

是我的語法不正確的?我很少使用R

謝謝先進。

+1

請參閱[如何使一個偉大的R可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。正如所寫,不清楚你在問什麼。如果你可以顯示一些示例數據,它可以幫助我們理解你是否試圖循環訪問一個data.frames列表(如果data是你的列表,那麼data [[i]]就是什麼。 – C8H10N4O2

+0

我以爲我的問題很清楚。語法存在問題,而不是解析。我簡單地混淆瞭如何在R中使用for循環與我的例子。 –

+0

請向我們展示'str(data)'或者沒有人能幫到你 – C8H10N4O2

回答

0

1)您會提供關於「數據」和「PriceFun」數據類型的更多信息嗎?如果這些是列表,你是否在for循環前列出了空列表?

2)我認爲循環內函數的主體會給你語法錯誤。如果要調用列表的元素,請嘗試使用方括號[],而不是()。

3)只需使用round(PriceFun [i],3)即可將整個列四捨五入。

+0

PriceFun看起來像這樣插入數據: 'data1 [date] [fuel price] [1,] 01/15/2010 3.56 [2,] 2010年1月17日3.32 [3,] 2010年3月18日3.45 [4,] 2010年4月20日3.94 [4,] 2010年4月25日3.94' 它不是列表。我只是想用for循環創建新的變量。 –