[R] provide extra variables to environment in call
Liaw, Andy
andy_liaw at merck.com
Fri Oct 8 15:54:08 CEST 2004
Not an direct answer to your question, but why not do something like:
> f <- function() x + 1
> x <- 10
> f()
[1] 11
> g <- function(x, ...) {
+ my.f <- f
+ formals(my.f) <- c(list(x=NULL), formals(f))
+ my.f(x, ...)
+ }
> g(5)
[1] 6
Andy
> From: Khamenia, Valery
>
> Hi all,
>
> Situation:
>
> there is a function `f' already defined by someone and
> provided in package. `f' looks like that:
>
> f <- function() {
> x+1
> }
>
> i.e. `f' is not closed i.r.t. term `x'
>
> now I have my own function `g', where I'd like
> to override variable `x' while calling `f':
>
> x <- "dummy gloabal value"
>
> g <- function() {
> x <- 42
> eval(f(), environment()) # how to make loacl `x' visible in `f'?
> }
>
> g() # => Error in x + 1 : non-numeric argument to binary operator
>
> Here comes the question:
>
> What is the right way to call `f' in order to override
> global value of `x' with the local value defined within
> of function `g' ?
>
> I see that i've missed something in docs for
> eval/environments and related.
>
> Thank you in advance.
> --
> Valery.
>
> ______________________________________________
> R-help at 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.html
>
>
More information about the R-help
mailing list