r - R语言函数中的函数
问题描述
我在 R 语言中有一个简单的函数,例如:
f<-function(x){
y=(x+2)/3
return(y)
}
我想根据自己的输出对这个函数进行五次评估,即y1=f(x), y2=f(f(x)), y3=f(f(f(x))), y4=f(f(f(f(x)))), y5=f(f(f(f(f(x)))))
. 有没有更简单的方法以一个函数的形式来做,例如当第一个参数是x
,第二个参数是评估次数时,有两个参数的函数,即n
。例如,对于x=3
和n=5
我想要一个函数f2<-(x=3,n=5)
,其输出将是向量或长度等于n
值的列表的形式:
y1=f(3)=1.666667
y2=f(f(3))=1.222222
y3=f(f(f(3)))=1.074074
y4=f(f(f(f(3))))=1.024691
y5=f(f(f(f(f(3)))))=1.00823
如何在 R 中编写这样一个函数?
解决方案
使用另一篇文章中接受的答案,只需使用Reduce
来创建作品,g
.
composite <- function(g, h) {function(...)g(h(...))}
g <- Reduce(composite, list(f, f, f, f, f))
g(2)
f(f(f(f(f(2)))))
identical(g(2), f(f(f(f(f(2))))))
#[1] TRUE
推荐阅读
- c++ - 使用 libelf 注入 DT_NEEDED 条目
- python - 我在组织 PyQt5 Gui 代码时遇到问题
- node.js - 使用 Mongoose 在多个连接中存储一个模式
- c# - 无法在 Visual Studio 中导入已安装的包 c#
- coq - 断言(目标)没有错误,但剪切(目标)错误
- python - Python 图像缩放
- javafx - FXML:是否可以访问 fx:include 的加载程序的命名空间?
- python - 乒乓球在乒乓球上不断出现故障如何解决?游戏
- java - AlarmManager 在指定时间未显示 toast 消息
- python - 如何在隐藏类中通过 pythom selenium 选择一个选项?