do.call specify environment inside function

前端 未结 3 2107
盖世英雄少女心
盖世英雄少女心 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:34

    Evidently if we evaluate the functions in fun_wrap2 it works. The problem with the approach in the question is that the character strings get converted to functions inside one of the processing functions which changes the lookup path.

    fun_wrap2 <- function(){
    
      funa1 <- function(x) x^2
      funb1 <- function(x) x^3
    
      nms <- c("funa1", "funb1")
      funs <- lapply(nms, match.fun)
      lapply(funs, do.call, list(x=3))
    
    }
    
    fun_wrap2()
    

提交回复
热议问题