gpt4 book ai didi

r - 将函数参数传递给其他本身就是函数的参数

转载 作者:行者123 更新时间:2023-12-02 21:48:43 25 4
gpt4 key购买 nike

假设我有一个外部函数,它有一个数字参数和一个函数本身的参数(内部函数)。如何将外部函数的数字参数的值作为参数传递给内部函数?考虑这个玩具示例:

innerfun <- function(M){
1:M
}

outerfun <- function(x, fun){
x * fun
}

outerfun(x = 3, fun = innerfun(M = 3)) ## works
outerfun(x = 3, fun = innerfun(M = x)) ## error because innerfun can't find 'x'
outerfun(x = 3, fun = innerfun(M = get("x"))) ## doesn't work either...

所以我想要做的是在评估outerfun的参数时调用innerfun,使用调用innerfun时的那些outerfun参数。有什么想法或建议吗?

最佳答案

我会做这样的事情:

outerfun <- function(x, fun,...){
x * fun(x,...)
}
innerfun <- function(M){
seq_len(M) ## safer than 1:M
}
outerfun(x=3, innerfun)
[1] 3 6 9

请注意,如果内部函数有多个参数,它仍然有效:

innerfun2 <- function(M,Z){
seq(M+Z)
}
outerfun(x=3, innerfun2,Z=3)
[1] 3 6 9 12 15 18

关于r - 将函数参数传递给其他本身就是函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075331/

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