【问题标题】:R: Overwrite a variable in parent namespaceR:覆盖父命名空间中的变量
【发布时间】:2016-01-21 12:25:32
【问题描述】:

setMeZero 函数的外观如何才能使以下操作成为可能?

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

edit:我真的是这样打算的,它是 good 还是 not 是另一个问题。

【问题讨论】:

  • 这个? a=2; foo <- function(x) {x <- 0; return(x)}; a <- foo(a); a==0

标签: r variables namespaces


【解决方案1】:

你可以这样做

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

【讨论】:

    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2010-11-08
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多