2016-11-23 2 views
0

Rで字句を有効にする方法はありますか?私は、関数がその親/祖先環境のいずれかを使用するのを防止したい。望ましい動作は以下のエラーです(xが見つかりません)。あなたはこれがそんなにそれが検索を変更するようレキシカルスコープを「無効」しません関数内で親/祖先環境を無視する(字句スコープを無効にする)

x <- 1 
f <- function() return(x); 
environment(f) <- baseenv() 
f() 
# Error in f() : object 'x' not found 

地球環境を検索しませんbaseenv()ようにあなたの関数の環境を設定することができ

x <- 1 
f <- function() 
    eval(parse(text = "x"), 
     envir = new.env(), 
     enclos = new.env()) 
f() # returns 1 

答えて

3

地球環境を飛ばす。

eval(envir=)またはnew.env(parent=)パラメータを使用すると、必要に応じてbaseenv()を使用できます。

x <- 1 
f <- function() 
    eval(parse(text = "x"), 
     envir = baseenv()) 
f() 
# Error in eval(expr, envir, enclos) : object 'x' not found 
関連する問題