R match.fun看不到导入包中的函数
我已经导入了名为“stabledist”的软件包。它包括函数“rstable” 当我这么做的时候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 =
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.