One option is:

dosomething <- function(x, data, env=parent.frame()) {
       if(!missing(data)) x <- data[,deparse(substitute(x))]
       temp <- x^2 + 5
       return(temp)
}

On 29/02/2008, Viechtbauer Wolfgang (STAT)
<[EMAIL PROTECTED]> wrote:
> Dear All,
>
>  I am working on a function that has an optional data argument, just like 
> lm(). If the user sets the data argument equal to some dataframe, then the 
> function should look inside the dataframe for the variables given to other 
> arguments, otherwise the variables should be accessible from what I believe 
> is called the parent frame from which the function was called. I looked at 
> the source code for lm() (and similar functions) and the documentation of 
> ?eval, but I just can't quite figure out how to make this work.
>
>  So, for a simple example, suppose I want to do this with the following 
> function:
>
>  dosomething <- function(x, data) {
>         temp <- x^2 + 5
>         return(temp)
>  }
>
>  How does the function need to be changed, so that dosomething(somevariable, 
> data=somedataframe) will find somevariable within the dataframe somedataframe 
> and if dosomething(somevariable) is called, the function should find 
> somevariable in the parent frame (or anywhere else in the search path)?
>
>  Thanks for any help!
>
>  --
>  Wolfgang Viechtbauer
>   Department of Methodology and Statistics
>   University of Maastricht, The Netherlands
>   http://www.wvbauer.com/
>
>  ______________________________________________
>  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.
>


-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

______________________________________________
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.

Reply via email to