使用 assign 分配给 .GlobalEnv

Assign to .GlobalEnv with assign

我有一个功能:

myfunctionIs=myfunct(x,y){
#Some calculations and assign my lists to globalenv
theList1<<-theList1
theList2<<-theList2

#Nested function
function(...){
theList1=get("theList1")
theList2=get("theList2")

##Some calculations...
#NamesList calculation
 NamesList= ###Some Calculations

ListContainer=c(deparse(substitute(theList1)),deparse(substitute(theList2)))

for (i in seq_along(ListContainer)){
        assign(ListContainer[i],mapply(function(x,y) {

          ##Some calculations

          return(x)      

        },x=get(ListContainer[i],envir=parent.env(environment())),y=NamesList,SIMPLIFY = FALSE),
        envir=.GlobalEnv)
      }

}}

我正在尝试将 theList1 和 theList2 分配回 .GlobalEnv,但出现错误

Error in get(ListContainer[i], envir = parent.env(environment())) : 
  object 'structure(list("2002-12-31" = structure(list(Date = c("2000-01-31", ' not found

我认为错误来自

get(ListContainer[i],envir=parent.env(environment()))

因为 calculations work correctly if I work in GlobalEnvironment.

有什么想法吗? 最好的问候

EDIT 这样可行: 将 ListContainer 更改为:

ListContainer=c("theList1","theList2")

函数内部 deparse(substitute... 存在一些问题。

有效:将 ListContainer 更改为:

ListContainer=c("theList1","theList2")

deparse(substitute(..)) 部分有问题。

或者也许这也可以通过一些调整来实现:

ListContainer=c(quote(theList1),quote(theList2))

然后

eval(ListContainer[i])

在循环中。