gpt4 book ai didi

r - 将省略号参数传递给两个不同的函数?

转载 作者:行者123 更新时间:2023-12-02 08:10:36 26 4
gpt4 key购买 nike

如何编写一个足够灵活的主函数以将额外的参数传递给多个函数?简单的尝试失败了:

> mainF <- function(f1,f2,...) {
+ f2( X=f1(...), ... )
+ }
> mainF(function(x) x, function(X, y) X*y, x=5, y=3)
Error in f2(X = f1(...), ...) : unused argument (x = 5)

我可以通过检查形式并将省略号中的调用参数与每个函数的形式相匹配来了解这是如何实现的。还有更好的方法吗?

最佳答案

您可以将列表传递给其中一个子函数,即

mainF <- function(f1, f2, ..., args.f2 = list()) {
do.call(f2, c(X=f1(...), args.f2))
}

mainF(function(x) x, function(X, y) X*y, x=5, args.f2 = list(y=3))

(未经测试,但您已经掌握了要点)

关于r - 将省略号参数传递给两个不同的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16774946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com