与内置函数一样,在函数内部显示环境的名称的方法是什么?例如,当我键入基本包中的函数:mean时,我可以将环境看作“namespace:base”。R:函数 - 显示环境名称而不是该环境的内存地址?
mean
function (x, ...)
UseMethod("mean")
<bytecode: 0x0547f17c>
**<environment: namespace:base>**
然而,当我附上一个功能到新创建的环境,这里访问函数内的自由变量(Z)的值(F),它会自动驻留在.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包中提供的函数?环境数据结构和搜索环境中可提供的环境数据结构是否存在差异
任何指向此行为背后动机的指针都将受到高度赞赏。
谢谢
我尝试将名称添加到使用environmentName(E1)环境< - “E1”,却得到了一个错误像“找不到功能environmentName ...”。另外,每个环境都有独特的配置文件。我还没有使用过软件包,但了解R – Sathish
中变量及其数据结构的命名空间行为是否值得你猜对于environmentName()函数有什么作用? – Sathish