像内置函数一样显示函数内部环境名称的方法是什么?例如,当我键入 function:mean available in base package 时,我可以将环境视为“namespace:base”。
mean
function (x, ...)
UseMethod("mean")
<bytecode: 0x0547f17c>
**<environment: namespace:base>**
但是,当我将一个函数附加到新创建的环境时,在这里访问函数 (f) 内的自由变量 (z) 的值时,它会自动驻留在 .GlobalEnv 环境中,并且环境的名称不会显示在功能,但看到(e1)环境的内存地址“0x051abd60”。
e1 <- new.env()
e1$z <- 10
f <- function(x) {
x + z
}
environment(f) = e1
f
function(x) {
x + z
}
**<environment: 0x051abd60>**
为什么我会看到这种行为?为什么我不能在函数中获取我的环境名称,就像 R 的内置函数以及各种 R 包中可用的函数一样?search() 提供的环境数据结构和 .GlobalEnv 环境之间是否有区别
任何指向这种行为背后的动机的指针都将受到高度赞赏。
谢谢