首页 > 解决方案 > 在 R 中使用嵌套函数的高效代码

问题描述

我想知道在使用嵌套函数时,R 中什么更有效。本质上,我有三个函数 f1、f2、f3。f3 使用 f2 本身使用 f1

我有两个选择是:

据您所知,这些方法中的一种是否比另一种更有效?

非常感谢

标签: roptimizationnested-function

解决方案


谢谢你。我不知道这个功能。我只使用 2 个函数 f1 和 f2 运行了以下命令:

f1 <- function(x) {
  y <- x + 2
  return(y)
}

f2 <- function(y){
  x = 3
  z <- y + 3 + f1(x)
  return(z)
}

哪个返回

> microbenchmark::microbenchmark(f2(2))
Unit: nanoseconds
expr min  lq     mean median    uq     max neval
f2(2) 737 754 47665.41  798.5 910.5 4667754   100

相对于

f3 <- function(y){

  f4 <- function(x) {
  y <- x + 2
  return(y)}

  x = 3
  z <- y + 3 + f4(x)
  return(z)
}

这似乎有点慢

> microbenchmark::microbenchmark(f3(2))
Unit: nanoseconds
  expr min    lq     mean median   uq     max neval
 f3(2) 844 868.5 53053.53   1000 1096 5180886   100

虽然我不确定这个例子是否非常可靠......因为它非常快


推荐阅读