Hello,
I realize this is not a new problem, but I'm hoping somebody can point me in
the right direction.
The function silly() below calls gam() (from package gam) with different values
of the span parameter for lo(), which is used inside the formula of gam. The
values for span are stored in a vector that resides in the function silly(), and
that lo(), for some reason, needs to see.
A hack to get around this is provided in silly2(), where the current value for
span is forcefully assigned to a variable in the "top" environment,
that is always visible (I believe?) Of course, this is not good programming
practice (to say the least).
I'd very much appreciate it if somebody could help me find a better way to
make silly() work.
Thanks a lot in advance.
Matias
-----------------------------> version
_
platform i386-redhat-linux-gnu
arch i386
os linux-gnu
system i386, linux-gnu
status
major 2
minor 7.1
year 2008
month 06
day 23
svn rev 45970
language R
version.string R version 2.7.1 (2008-06-23)>
> silly <- function(x, y, alphas = seq(.1, .9, length=9)) {
+ a <- rep(0, 9)
+ for(i in 1:9) {
+ a[i] <- predict(gam(y~lo(x, span = alphas[i]), family=poisson),
type='response')[23]
+ }
+ return(a)
+ }>
> silly2 <- function(x, y, alphas = seq(.1, .9, length=9)) {
+ a <- rep(0, 9)
+ for(i in 1:9) {
+ assign("tt", alphas[i], envir=.GlobalEnv)
+ a[i] <- predict(gam(y~lo(x, span = tt), family=poisson),
type='response')[23]
+ }
+ return(a)
+ }>
> library(gam)
Loading required package: splines> set.seed(321)
> x <- runif(50)
> y <- rpois(50, lambda=10)
> silly(x=x,y=y)
Error in lodummy(span = alphas[i]) : object "alphas" not
found> silly2(x=x,y=y)
[1] 11.56997 10.98681 10.73250 10.63455 10.62692 10.61285 10.61779 10.63234
[9] 10.66311>
>
__________________________________________________________________
[[elided Yahoo spam]]