[R] basic proto question
Gabor Grothendieck
ggrothendieck at gmail.com
Sun Dec 20 18:04:10 CET 2009
The free variables in a proto method are looked up in the object that
the method was defined in so by referencing predict within
test$predict you are referring back to test$predict whereas you mean
to refer to stats::predict. Change the line that calls predict to:
stats::predict(.$spline(), x.fine)
On Sun, Dec 20, 2009 at 11:49 AM, baptiste auguie
<baptiste.auguie at googlemail.com> wrote:
> Dear list,
>
> I made the following example of a proto object that contains some data
> and a spline interpolation. I don't understand why test$predict()
> fails with this error message:
>
> Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
>
> Best regards,
>
> baptiste
>
> test <- proto(source = data.frame(x=1:10, y=rnorm(10)),
> raw = function(.){
> data.frame(xx=.$source$x, yy=.$source$y)
> },
> spline = function(.){
> with(.$raw(), smooth.spline(xx, yy))
> },
> predict = function(., range=NULL, n=100){
> if(is.null(range))
> range <- range(.$raw()$xx)
>
> x.fine <- seq(from=range[1], to=range[2], length=n)
>
> predict(.$spline(), x.fine)
>
> }
> )
>
> test$source
> test$raw()
> test$spline() # OK so far
> test$predict() # fails
>
> sessionInfo()
> R version 2.10.1 RC (2009-12-06 r50690)
> i386-apple-darwin9.8.0
>
> locale:
> [1] en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
>
> attached base packages:
> [1] grid tools stats graphics grDevices utils datasets
> [8] methods base
>
> other attached packages:
> [1] lattice_0.17-26 ggplot2_0.8.5 digest_0.4.1 reshape_0.8.3
> [5] plyr_0.1.9 proto_0.3-8 constants_1.0 gtools_2.6.1
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list