2016-01-21 72 views
1

函數setMeZero如何查看以便可以執行以下操作?R:覆蓋父命名空間中的一個變量

a = 1 
b = 2 
setMeZero(a) 
setMeZero(b) 
a == 0 
# TRUE 
b == 0 
# TRUE 

編輯:我真的打算就這樣,無論是方式或是另一個問題。

+1

這一個? '一個= 2; foo < - function(x){x < - 0;返回(X)}; a < - foo(a);一個== 0' – Jimbou

回答

2

你可以做這樣的事情

setMeZero <- function(x){ 
    nm <- deparse(substitute(x)) 
    assign(nm, 0, parent.frame()) 
    invisible() 
} 
a <- 1 
b <- 2 
setMeZero(a) 
setMeZero(b) 
a == 0 
# TRUE 
b == 0 
# TRUE