0

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

我正在尝试将函数的结果分配给函数内的某个名称。该名称不应出现在 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,函数本身所在的环境,但我想知道如何调用函数内部的变量所在的环境。.私有?

4

1 回答 1

1

environment()你想要的吗?

createList <- function(...,nm="nameString"){
  myList <- list(...)
  assign(nm,myList,envir=environment())
  get(nm)
}
于 2013-09-25T20:23:32.330 回答