例如,我有一个函数向量:fun_vec <- c(step1,step2,step3)
.
现在我想像这样组合它们:step1(step2(step3(x)))
.我如何使用 fun_vec
执行此操作? (假设 fun_vec
不是固定的,可以有更多或更少的功能。)
最佳答案
类似于 Frank 对 freduce
的使用,您可以使用 Reduce
:
step1 <- function(a) a^2
step2 <- function(a) sum(a)
step3 <- function(a) sqrt(a)
steps <- list(step1, step2, step3)
Reduce(function(a,f) f(a), steps, 1:3)
# [1] 3.741657
step3(step2(step1(1:3)))
# [1] 3.741657
你可以看到它“在行动”:
Reduce(function(a,f) f(a), steps, 1:3, accumulate=TRUE)
# [[1]]
# [1] 1 2 3
# [[2]]
# [1] 1 4 9
# [[3]]
# [1] 14
# [[4]]
# [1] 3.741657
关于r - 如何编写函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52955674/