I don't think previous responses have addressed the question, which appears to be: "How does R know to look in the "data" object for the variable names in the formula?" And, of course, I could be wrong -- in which case ignore all the following.
My answer to that question is: it's quite complicated. I think you have to know about calls, function closures, evaluation environments, and the details of model.frame.lm -- and perhaps more. The following **might** be a start: > dat <- data.frame(x = 1:10, y = rnorm(10)) > > ## substitute() is used to return the unevaluated expression for the call > mc <- match.call(lm, call = substitute(lm(y~x,data = dat))) > class(mc) [1] "call" > as.list(mc) [[1]] lm $formula y ~ x $data dat Cheers, Bert Gunter On Thu, May 9, 2019 at 10:01 AM William Michels via R-help < r-help@r-project.org> wrote: > Hello John, > > Others have commented on the first half of your question, but the > second half of your question looks very much like R's built-in > predict() functions: > > >?predict > >?predict.lm > > Best Regards, > > Bill. > > W. Michels, Ph.D. > > > > On Wed, May 8, 2019 at 6:23 PM Sorkin, John <jsor...@som.umaryland.edu> > wrote: > > > > Can someone send me something I can read about passing parameters so I > can understand how lm manages to have a dataframe passed to it, and use > columns from the dataframe to set up a regression. I have looked at the > code for lm and don't understand what I am reading. What I want to do is > something like the following, > > > > > > myfunction <- function(y,x,dataframe){ > > > > fit0 <- lm(y~x,data=dataframe) > > print (summary(fit0)) > > } > > > > # Run the function using dep and ind as dependent and independent > variables. > > mydata <- data.frame(dep=c(1,2,3,4,5),ind=c(1,2,4,5,7)) > > myfunction(dep,ind) > > # Run the function using outcome and predictor as dependent and > independent variables. > > newdata <- data.frame(outcome=c(1,2,3,4,5),predictor=c(1,2,4,5,7)) > > myfunction(outcome,predictor) > > > > > > > > > > > > John David Sorkin M.D., Ph.D. > > Professor of Medicine > > Chief, Biostatistics and Informatics > > University of Maryland School of Medicine Division of Gerontology and > Geriatric Medicine > > Baltimore VA Medical Center > > 10 North Greene Street > > GRECC (BT/18/GR) > > Baltimore, MD 21201-1524 > > (Phone) 410-605-7119 > > (Fax) 410-605-7913 (Please call phone number above prior to faxing) > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.