我有一个闪亮的应用程序,其中server.R如下所示:
shinyServer(function(input, output,session) {
temp<-reactive({
obj1<-read.csv(.....)
v1<-c("obj2")
lst<-lapply(v1,read.csv(....)
list2env(lst)
...
})
我正在名为obj1
的反应函数中直接创建一个对象,并使用list2env创建obj2
。 obj1
和obj2
都不在同一个环境中。当我进入被动功能时,我所处的环境是什么?
另外,我不想在.GlobalEnv
中使用list2env
,因为它会在所有用户会话中使用此对象。如何在与list2env
相同的环境中obj2
创建obj1
?
答案 0 :(得分:7)
environment()
函数将返回当前环境。因此,如果您在函数内部使用它,它将返回函数的环境。然后,您可以将其与
list2env(lst, envir=environment())
(虽然我个人总是发现将数据保存在列表中更容易,而不是在环境中创建一堆独立的变量。)