如何在不分配给.GlobalEnv时在函数内使用赋值?

时间:2013-09-25 20:19:10

标签: r private environment

换句话说:如何获取函数环境的名称(而不是其封闭环境)。

我试图将函数的结果分配给函数内的某个名称。该名称不应出现在GlobalEnv中。我仍然关心这个名字,因为我处理deparse(substitute(x))因此需要理解这个名字。

目前我只是在函数内部创建一个环境,我认为这是一种解决方法:

createList <- function(...,nm="nameString"){
myList <- list(...)
e1 <- new.env()
assign(nm,myList,envir=e1)
# obviously this does not make much sense
# just want to show that the envir thing works
e1[[nm]]
}

有没有办法更轻松地做到这一点?不是结果,而是将变量分配给某个名称 在一个函数内部。 environment(createList)只是给我的后面.GlobalEnv,即函数本身所在的环境,但我想知道如何调用环境,函数内部的变量存在于.Private?

1 个答案:

答案 0 :(得分:1)

environment()你想要的是什么吗?

createList <- function(...,nm="nameString"){
  myList <- list(...)
  assign(nm,myList,envir=environment())
  get(nm)
}