Dear all, my function fn() (see code below) just takes a glm object and updates it by including a function of a specified variable in dataframe.
x<-1:50 y<-rnorm(50) d<-data.frame(yy=y,xx=x);rm(x,y) o<-glm(yy~xx,data=d) > fn(obj=o,x=xx) Call: glm(formula = yy ~ xx + x1, data = obj$data) ....[SNIP].... It works but I have two problems: 1)In the returning glm object the name of the dataframe is "obj$data", but I would like to get the original one, i.e. "d"; 2)fn() does not work if glm() is called without the data argument, namely > attach(d) > o<-glm(yy~xx) > fn(obj=o,x=xx) Error in eval(expr, envir, enclos) : Object "x1" not found Here there seems to be some problem with the scoping rule; could you suggest me how solve this problem? Also I'm almost sure that there exist a much more elegant solution instead of the mine used; I tried get(), environment() and friends, but without any success....Could you suggest me anything? thanks in advance, vito ######### function(obj,x){ if(!is.null(obj$call$data)){ attach(eval(obj$call$data)) on.exit(detach(eval(obj$call$data))) } x1<-ifelse(x>mean(x),1,0) if(!is.null(obj$call$data)) obj$data$x1<-x1 obj1<-update(obj,.~.+x1,data=obj$data) return(obj1) } ______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help