[R] filter function speed

Bishara, Anthony J BisharaA at cofc.edu
Thu May 28 21:16:52 CEST 2009


I am trying to use a linear filter to reduce loops and thereby increase
the speed of an existing program.  However,  while the "filter" function
(stats package) should have reduced the looping by about 30-fold, the
time to complete the program remained about the same.  This surprised
me, because I had made an analogous change to a Matlab version of the
same program using Matlab's "filter" function, and that change made the
program run about 9 times as fast.  

In R, is there another function that would be more efficient than
"filter" in the stats package?  Any advice would be appreciated, as I
would hate to see Matlab win this speed battle.

Relevant line from R code:
   
evTemp=filter(lambda*tempterm,1-lambda,method="recursive")
#lambda=scalar between 0 and 1 (representing learning rate in a
reinforcement learning model)
#tempterm=vector with from 1 to 150 elements (representing reinforcement
value data)


Thank you.

Anthony Bishara
Department of Psychology
College of Charleston
http://bisharaa.people.cofc.edu/




More information about the R-help mailing list