R闪亮list2env
R Shiny list2env
我有一个闪亮的应用程序,其中 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
不在同一个环境中。当我在反应函数中时,我所处的环境是什么?
此外,我不想在 list2env
中使用 .GlobalEnv
,因为它会使该对象在所有用户会话中可用。如何让 list2env
在与 obj1
相同的环境中创建 obj2
?
environment()
函数将return当前环境。因此,如果您在函数内部使用它,它将 return 函数的环境。然后您可以将其与
一起使用
list2env(lst, envir=environment())
(尽管我个人几乎总是发现将数据保存在列表中比在环境中创建一堆单独的变量更容易。)
我有一个闪亮的应用程序,其中 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
不在同一个环境中。当我在反应函数中时,我所处的环境是什么?
此外,我不想在 list2env
中使用 .GlobalEnv
,因为它会使该对象在所有用户会话中可用。如何让 list2env
在与 obj1
相同的环境中创建 obj2
?
environment()
函数将return当前环境。因此,如果您在函数内部使用它,它将 return 函数的环境。然后您可以将其与
list2env(lst, envir=environment())
(尽管我个人几乎总是发现将数据保存在列表中比在环境中创建一堆单独的变量更容易。)