将带参数的函数作为参数传递给R中的另一个函数

MJ3*_*J30 2 r function

考虑一个例子:

我想将带或不带参数的函数传递给另一个函数,并按以下方式使用它:

genfx <- function(fx, fy, M, fs, ...){ 

  a <- 1
  b <- fx(a)
  ...
}
Run Code Online (Sandbox Code Playgroud)

fx = dunif它工作,但我怎么能传递其他参数fx,例如,dunif(min=-0.5, max-0.5))?是否可以在不指定其他参数集的情况下执行此操作genfx

Rei*_*son 5

没有更多细节,我们可能不需要它们,最简单的情况就是插入...到调用中fx,好像它...只是另一个参数:

genfx <- function(fx, fy, M, fs, ...){ 

  a <- 1
  b <- fx(a, ...)
  ## more code here
}
Run Code Online (Sandbox Code Playgroud)

例如:

genfx <- function(fx, ...){ 

  a <- 1
  b <- fx(a, ...)
  b
}

> genfx(dunif)
[1] 1
> genfx(dunif, min = -0.5, max = 1.5)
[1] 0.5
Run Code Online (Sandbox Code Playgroud)

(注意我在示例中为了简单起见删除了其他参数.虽然在这种情况下这不是必需的.)