do.call specify environment inside function

前端 未结 3 2108
盖世英雄少女心
盖世英雄少女心 2021-02-09 14:11

I\'m using the following construct in a package,

## two functions in the global environment
funa <- function(x) x^2
funb <- function(x) x^3
## called withi         


        
3条回答
  •  遇见更好的自我
    2021-02-09 14:17

    This seems to work, but i'm not sure if it has other implications I'm not considering:

    fun_wrap1 <- function(){
      funa1 <- function(x) x^2
      funb1 <- function(x) x^3
      lapply(c('funa1', 'funb1'), do.call, args=list(x=3), envir=environment())
    }
    
    fun_wrap1()
    #[[1]]
    #[1] 9
    #
    #[[2]]
    #[1] 27
    

    So this is essentially equivalent to having the lapply statement as:

    lapply(
           c('funa1', 'funb1'), 
           function(f) do.call(f, args=list(x=3), envir=environment() )
          ) 
    

提交回复
热议问题