gpt4 book ai didi

r - 将可选参数传递给函数,三个点

转载 作者:行者123 更新时间:2023-12-01 08:22:40 26 4
gpt4 key购买 nike

我很困惑 ...作品。

tt = function(...) {
return(x)
}

为什么不 tt(x = 2)返回 2 ?

相反,它因错误而失败:

Error in tt(x = 2) : object 'x' not found



即使我路过 x作为论点?

最佳答案

因为你在...中传递的一切留在... .您传递的未由参数显式捕获的变量不会扩展到本地环境中。 ...应该用于当前函数根本不需要与之交互的值,但是某些稍后的函数确实需要使用它们是否可以轻松地在 ... 中传递.它适用于类似的场景

ss <- function(x) {
x
}

tt <- function(...) {
return(ss(...))
}

tt(x=2)

如果您的函数需要变量 x要定义,它应该是一个参数
tt <- function(x, ...) {
return(x)
}

如果您真的想将点扩展到当前环境中(我强烈建议您不要),您可以执行以下操作
tt <- function(...) {
list2env(list(...), environment())
return(x)
}

关于r - 将可选参数传递给函数,三个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511127/

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