2016-01-21 31 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