Hi Kevin,

I just had a quick look, at RcppRoll and noticed that almost all of the results 
have a single value as an output, and was wondering if it was possible to be 
able to get more than one output per loop…

to give a quick example, i would be grateful if you could show me how the 
following could be converted using rollit(). Hopefully this is possible.

n <- 50
m <- 3
mu <- 0.0001
sigma <- 0.003

require(xts)
x <- xts(matrix(rnorm(n*m,mu,sigma),ncol=m),Sys.Date()-c(n:1))

foo <- function(x){
  c(mean(x),sd(x))
}

foo1 <- function(x){
  y <- x[,1]+(3*x[,2])+(log(abs(x[,3])))
  tmp <- data.frame(cbind(y=y,x=x))
  colnames(tmp) <- c("y","a","b","c")
  c(sum(y), sd(y), coef(lm(y~a+b+c,data=tmp)))
}

rollapply(x,width=10,function(y){foo(y)},by.column=FALSE)
rollapply(x,width=10,function(y){foo1(y)},by.column=FALSE)

Thanks

HLM

On 26 Feb 2014, at 16:57, Kevin Ushey <kevinus...@gmail.com> wrote:

> And, I'm the RcppRoll developer -- I haven't touched the package in a while 
> so let me know if you run into any rough corners / have ideas for 
> improvements. The package is still pretty 'young' and not quite battle-worn 
> yet.
> 
> Thanks,
> Kevin
> 
> 
> On Wed, Feb 26, 2014 at 8:36 AM, Hideyoshi Maeda <hideyoshi.ma...@gmail.com> 
> wrote:
> Didn’t even know it existed! will take a look now. Thanks
> On 26 Feb 2014, at 16:35, Dirk Eddelbuettel <e...@debian.org> wrote:
> 
> >
> > On 26 February 2014 at 16:23, Hideyoshi Maeda wrote:
> > | Hi Rcpp devel list,
> > |
> > | One of the functions I like to use is zoo’s rollapply() function. However 
> > sometimes this can be slow as it is basically a long loop using mapply.
> > |
> > | Given how fast loops are in C++ this seems like this would be the perfect 
> > thing to covert into C++, BUT, one of the benefits of rollapply, is that it 
> > is flexible and you can put in any R custom function you like. I think 
> > there are some functionality in Rcpp that allow you to carry out custom R 
> > functions, but not sure what it is or if it would be helpful as you might 
> > have to recursively keep calling R each time it need the custom function in 
> > the loop.
> > |
> > | So I guess my question is 1) is there an existing implementation that has 
> > converted rollapply to C++ and 2) if not, then given the desired 
> > flexibility of using custom functions in rollapply, would converting it 
> > into C++ code be worthwhile? 3) if it would be worthwhile, then what should 
> > I be researching to be able to get custom functions into Rcpp/C++?
> >
> > Have you looked at RcppRoll yet?  See
> >
> >   http://cran.r-project.org/web/packages/RcppRoll/index.html
> >
> > Dirk
> >
> > --
> > Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com
> 
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel@lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> 

_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to