[R] basic proto question

2009-12-20 Thread baptiste auguie
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.1reshape_0.8.3
[5] plyr_0.1.9  proto_0.3-8 constants_1.0   gtools_2.6.1

__
R-help@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.


Re: [R] basic proto question

2009-12-20 Thread Gabor Grothendieck
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.aug...@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@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.


__
R-help@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.


Re: [R] basic proto question

2009-12-20 Thread baptiste auguie
Thanks, it seems so obvious now!

baptiste

2009/12/20 Gabor Grothendieck ggrothendi...@gmail.com:
 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.aug...@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@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.



__
R-help@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.