換句話說:如何獲取函數環境的名稱(而不是它的封閉環境)。如何在不分配給.GlobalEnv時在函數內部使用賦值?
我想分配一個函數的結果給一個函數內的某個名字。該名稱不應出現在GlobalEnv中。儘管如此,我仍在意名稱,因爲我處理deparse(substitute(x))
,因此需要了解名稱。
此刻,我只需要創建一個函數內部的環境,我覺得是怎樣的一個變通的:
createList <- function(...,nm="nameString"){
myList <- list(...)
e1 <- new.env()
assign(nm,myList,envir=e1)
# obviously this does not make much sense
# just want to show that the envir thing works
e1[[nm]]
}
有沒有辦法做到這一點更容易?不是結果,而是將變量分配給函數內的某個名稱 。 environment(createList)
只是給我回.GlobalEnv
,函數本身所在的環境,但我想知道如何調用環境,該函數內的變量居住在。私人?
''有沒有什麼辦法可以做到這一點?「 - 什麼是最終目標? –
Seconding @RicardoSaporta,我懷疑其他人也會跳進去。 – Peyton
最終目標實際上是如何找到命名函數的私有環境的散列。不知道沒有參數的環境()。 –