gpt4 book ai didi

R在调用时获取函数创建的环境

转载 作者:行者123 更新时间:2023-12-01 13:30:17 24 4
gpt4 key购买 nike

我想在函数运行时获取由函数创建的环境WITHOUT修改函数源(即从函数外部),这可能吗?

fn=function()
{#Here a new environment is created at each call, how to get it ?
#This environment can be access with environment() but only (to what I know)
#from inside the function

...
}

我想要这样的东西:

env=some_function(fn())

其中 env 是 fn 在调用时创建的环境 ID。

最佳答案

您可以跟踪将调用环境绑定(bind)到全局环境中的符号的函数:

fn <- function() {x <- 2; 1}
trace(fn, quote(efn <<- environment()), at = 1)
fn()
#Tracing fn() step 1
#[1] 1
untrace(fn)
efn$x
#[1] 2

关于R在调用时获取函数创建的环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46276933/

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