1
的代碼:分配到環境中的R
env <- new.env()
assign("X", value = 2, pos = env)
eval(X, envir = env)
結果在一個錯誤: 「X未找到」
然而:
ls(envir = env)
返回 「X」
爲什麼eval不返回2?
的代碼:分配到環境中的R
env <- new.env()
assign("X", value = 2, pos = env)
eval(X, envir = env)
結果在一個錯誤: 「X未找到」
然而:
ls(envir = env)
返回 「X」
爲什麼eval不返回2?
這應該工作:
eval(quote(X),envir=env)
問題是它試圖評估X,然後把它傳遞給eval
但X在你的主環境沒有價值,因此給出了一個錯誤。把quote
告訴EVAL尋找X
在env
技術上,'報價(X)''告訴* eval'不找'X'但*(即在當前的環境); 'envir = env'告訴它看看'env',一旦它開始尋找... –
你也可以使用'evalq(X,envir = env)'作爲引用的「快捷方式」 – MrFlick
@ BenBolker好點我是懶惰 – Carl