微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多次将函数的输出传递回输入

如何解决多次将函数的输出传递回输入

我有一个接受数值并产生数值的函数。我的代码如下:

p<-function(a){
  sp(bp(a))
}

spbp函数接受数字输入并产生数字结果(spbp遵循不同的操作)。我想多次运行此功能。以下代码

sp(bp(sp(bp(sp(bp(a)))))) 

具有我想要的效果,但是显然,对于大量的迭代,这不是一种实用的方法。如何重复将p输出作为输入反馈回p

解决方法

编辑:澄清后

因此,如果您想连续申请p的次数(有限),那将是一种方法(我假设sp和{{ 1}}进行说明):

bp

由reprex程序包(v0.3.0)于2020-09-11创建

我不太确定要使用哪种用例(因为这很容易导致无限的“循环”,但这是一个函数的示例(公认的),该示例对一些数字求和,无论它们有多少个列表可以嵌套,该嵌套使用在函数定义本身中使用相同函数的调用:

sp <- function(x) return(x+1)
bp <- function(x) return(2*x)
p <- function(x) return(sp(bp(x)))

# Applying p 3 times in succession:
p_old <- 1
for (i in 1:3){
  p_new =  p(p_old)
  p_old = p_new
}

p_new
#> [1] 15
# Which is the same as
p(p(p(1)))
#> [1] 15

由reprex软件包(v0.3.0)于2020-09-11创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。