使用 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])
在循环中。
我有一个功能:
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])
在循环中。