G'day Peter, On Wed, 13 Feb 2008 08:03:07 +0100 Peter Dalgaard <[EMAIL PROTECTED]> wrote:
> Ross Boylan wrote: > > In the following example, the inner evaluation pulls in the global > > value of subset (a function) rather than the one I thought I was > > passing in (a vector). Can anyone help me understand what's going > > on, and what I need to do to fix the problem? [...] > The point is that subset (and offset) arguments are subject to the > same evaluation rules as the terms inside the formula: First look in > "data", then in the environment of the formula, which in this case is > the global environment. Perhaps I have a [senior|blonde]-day today, but this does not seem to be the full explanation about what is going on to me. According to this explanation the following should not work: > lm(Reading~0+Spec+Reader, netto, subset=c(1) ) Call: lm(formula = Reading ~ 0 + Spec + Reader, data = netto, subset = c(1)) Coefficients: Spec Reader 1 NA since the value passed to subset is not part of "data" and not in the global environment. But, obviously, it works. OTOH, if we change f0 to > f0 function(formula, data, subset, na.action) { lm(formula, data, subset=subset, na.action=na.action) } then we get the same behaviour as with Ross's use of f1 inside of f0: > t3 <- f0(Reading~0+Spec+Reader, netto, c(1) ) Error in xj[i] : invalid subscript type 'closure' More over, with the original definition of f0: > f0 function(formula, data, subset, na.action) { f1(formula, data, subset, na.action) } > (f1(Reading~0+Spec+Reader, netto, subset= Spec==1 )) Reading Spec Reader 1 1 1 1 > f0(Reading~0+Spec+Reader, netto, subset= Spec==1 ) Error in xj[i] : invalid subscript type 'closure' Given your explanation, I would have expected this to work. Reading up on `subset' in ?model.frame also does not seem to shed light onto what is going on. Remaining confused..... Cheers, Berwin ______________________________________________ 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.