提高R计划的效率

时间:2015-04-21 16:29:23

标签: r

我是R语言的新手,因为你很可能会注意到我在C语言方面有一些经验。我正在努力让我的程序运行得更快,从而提高效率。

下面的代码只是从数据集计算一个简单的移动平均值:

library(quantmod)
StockData1 <- getSymbols("AAPL", auto.assign=FALSE, from="1984-01-01")

据我所知,没有快速的预制功能可以为我做,所以我自己制作。

moving_avg <- function(StockData, MA, CurrentDay){

  #MA = Days long the MA is
  #CurrentDay = What day we are currently on

  MAValue <- NULL
  n <- 0
  total <- 0
  start <- CurrentDay - MA
  repeat {
    total <- total + StockData[[start, 4]]
    start <- start + 1
    n <- n + 1
    if(n == MA){
      break
    }
  }
  MAValue <- total/MA
  return(MAValue)
}

我使用microbenchmark测试了它:

library(microbenchmark)
microbenchmark(print(moving_avg(StockData1, 256, 300)))

我的结果大约是1000微秒,我觉得这个简单的功能很慢。

0 个答案:

没有答案