R match.fun看不到导入包中的函数

R match.fun看不到导入包中的函数,r,function,match,R,Function,Match,我已经导入了名为“stabledist”的软件包。它包括函数“rstable” 当我这么做的时候 my_fun <- function(function_from_library) { function_from_library <- match.fun(function_from_library) print(some_data <- function_from_library) } my_fun (5, rstable(5, alpha = 1.7, beta =

我已经导入了名为“stabledist”的软件包。它包括函数“rstable”

当我这么做的时候

my_fun <- function(function_from_library)
{
  function_from_library <- match.fun(function_from_library)
  print(some_data <- function_from_library)
}

my_fun (5, rstable(5, alpha = 1.7, beta = 0, gamma = 1.0, delta = 1.0))

my_fun以下是我如何实施我的建议:

 library(stabledist )
 my_fun <- function(function_from_library, ...)
 {
   function_from_library <- match.fun(function_from_library)
   print(some_data <- function_from_library(...))
 }

 my_fun ( rstable, 5, alpha = 1.7, beta = 0, gamma = 1.0, delta = 1.0)
#[1]  1.4600308688 -0.0004999279  1.9301805374 -1.3276383194  0.9137183709

我认为
match.fun
需要一个实际的函数,而不是调用函数。当然,您的示例很简单,但不清楚您在这里真正打算做什么。例如,您使用一个参数定义
my_fun
,但使用两个参数调用它。其思想是使用包中的分布进行蒙特卡罗模拟。所以主要功能应该是以审判为论据和分配。因为我想更改发行版,所以我想把库中的一些函数传递给我的朋友,因为每个函数都有不同的参数,我无法使用
rstable
(没有括号,没有参数)。然后从_库
中为函数_提供参数,通常使用省略号。
 library(stabledist )
 my_fun <- function(function_from_library, ...)
 {
   function_from_library <- match.fun(function_from_library)
   function_from_library(...)     }

 some_data <- my_fun ( rstable, 5, alpha = 1.7, beta = 0, gamma = 1.0, delta = 1.0)
 some_data
 # 5 random values are printed at console.