r - 如何编写函数列表

标签 r

例如,我有一个函数向量: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/

相关文章:

r 使用 paste 或 paste0 时保持 0.0

r - 对于内存来说,当需要不断地将向量增长到未知的上限时应该怎么办?

R光栅在绘图时避免空白

r - 基于前三个数字的子集

r - R中有用的小功能?

r - Filled.contour 与 ggplot2 + stat_contour

r - 如何将一列添加到由其他列的最小值组成的数据框中?

r - n 列减法数

r - 根据 2 个条件从采样创建向量

css - 如何更改某些 textOutput 元素的字体?