2017-01-24 68 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循环创建新的变量。 –