[Rd] data argument and environments
roger koenker
roger at ysidro.econ.uiuc.edu
Sun Apr 12 00:50:16 CEST 2009
I'm having difficulty with an environmental issue: I have an additive
model fitting function
with a typical call that looks like this:
require(quantreg)
n <- 100
x <- runif(n,0,10)
y <- sin(x) + rnorm(n)/5
d <- data.frame(x,y)
lam <- 2
f <- rqss(y ~ qss(x, lambda = lam), data = d)
this is fine when invoked as is; x and y are found in d, and lam is
found the .GlobalEnv,
or at least this is how I understand it. Now, I'd like to have a
function say,
h <- function(lam)
AIC(rqss(y ~ qss(x, lambda = lam), data = d))
but now, if I do:
rm(lam)
h(1)
Error in qss1(x, constraint = constraint, lambda = lambda, dummies =
dummies, :
object "lam" not found
worse, if there is a "lam" in the .GlobalEnv it is used instead of
the argument specified to h().
If I remove the data=d argument in the function definition then lam is
passed correctly.
presumably because data defaults to parent.env(). I recognize that
this is probably an elementary confusion on my part, but my
understanding of environments is very limited.
I did read the entry for FAQ 7.12, but I'm still unenlightened.
url: www.econ.uiuc.edu/~roger Roger Koenker
email rkoenker at uiuc.edu Department of Economics
vox: 217-333-4558 University of Illinois
fax: 217-244-6678 Champaign, IL 61820
More information about the R-devel
mailing list