與內置函數一樣,在函數內部顯示環境的名稱的方法是什麼?例如,當我鍵入基本包中的函數: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