R语言 将函数作为另一个函数参数传递

vcirk6k6  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(179)

我有两个功能,例如:

a <- function(x) return(mean(x))
b <- function(x) return(median(x))

我希望有另一个函数,可以传递ab作为参数。
我们的目标是这样的:

oper <- function(f, x) {
  ifelse(f == "a",  a(x), b(x))
}

例如,如果我要执行以下函数:

oper(a, c(3,4,5))

我收到以下错误消息:

Error in f == "a" : 
comparison (1) is possible only for atomic and list types

披露:平均值(x)和中位数(x)仅供参考。

cbeh67ev

cbeh67ev1#

因为R有一流的函数,你可以简单地传递你的函数并直接调用它:

oper2 <- function(f, x) {
  f(x)
}

x <- c(2, 3, 8)

oper2(a, x)
# 4.333333

oper2(b, x)
# 3

相关问题