gpt4 book ai didi

r - 是否可以让函数识别其上方范围内的变量?

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

我在 R 中工作,我想做,例如,

printx <- function() {
x <- 1
printy()
return(x)
}

printy <- function() {
print(x)
}

因为我不想一直传递大量变量(另外,全局环境中没有 x)。有没有办法做到这一点?所有函数都可以访问全局环境,但是函数环境和全局之间的函数呢?

最佳答案

也许

printx <- function() {
x <- 1
printy()
return(x)
}

printy <- function() {
print(get('x',envir=parent.frame()))
}

> x<-0
> printy()
[1] 0
> printx()
[1] 1
[1] 1

这将使用 xprinty 打印,它与调用函数的环境相关联。

另一种可能性是创建一个新环境

e1<-new.env(parent = baseenv())

> assign('x',12,envir=e1)
> x
[1] 0
> get('x',e1)
[1] 12

关于r - 是否可以让函数识别其上方范围内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731654/

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