From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>

Date: Tue 02 Aug 2005 - 21:32:35 EST

}

Date: Tue 02 Aug 2005 - 21:32:35 EST

I don't think that is the best way to do what I guess you intended. Try something like

test <- function(formula, data , weights) {

Call <- match.call() Call[[1]] <- as.name("glm") Call$family <- quote(poisson) glm1 <- eval.parent(Call) ....

}

which is probably giving the scoping that you want.

You could do what you ask for at 1) by something like

wname <- deparse(substitute(w)) w <- if(wname %in% names(data)) data[[wname]] else get(wname, .GlobalEnv)

and for 2) by replacing .GlobalEnv by an expression constructed by calls to environment() (I don't know exactly what you intended here).

On Tue, 2 Aug 2005, Jochen Einbeck wrote:

> Dear members,

*>
**> assume given a function of type
**>
**> test<-function(formula, data , w){
**> ......
**> glm1<-glm(formula, family=poisson, data=data, weights=w)
**> ......
**> }
**>
**> and a simple example data frame as
**>
**> test.frame<-data.frame(x=1:10,y=(1:10)*2,a=(1:10)^3).
**>
**> Let us now execute
**>
**> test(y ~ x, test.frame, a )
**>
**> My question is: What do I have to insert at the first occurance of .....
**> in the test function to ensure that
**>
**> 1) 'a' is read from the data frame (and is only read from the global
**> environment if and only if 'a' is not found in the data frame)
**> 2) glm finds w in in the local environment of the function 'test'
*

That contradicts 1)!

> The question is obviously related to Fernando's problem with

*> 'Defining a "local" function' some months ago, though the discussion
**> there does not solve the questions above.
*

-- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.htmlReceived on Tue Aug 02 21:38:19 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:39:39 EST
*