我在R(一个名为obj
的对象)中得到了我的分析结果,并将其保存为.RData文件obj-result.RData
。现在在Shiny中,在ui.R
文件的开头,我放了load("obj-results.RData")
,这样每次Shiny运行时,这个对象都可以加载到R session中,即我希望obj
对象可用于后续步骤,例如obj@data
,obj@sample
等。
但是,我发现load
不会使当前R会话中的obj
对象可用,因此Shiny无法找到所需的数量。加载.RData对象时是否有任何遗漏?非常感谢你!
答案 0 :(得分:5)
答案是,无论何时在ui.R
和/或server.R
中使用对象,相关对象都必须加载到同一文件中。否则,闪亮将不知道从其他文件中找到对象的位置(即使它们位于同一目录中并加载)。
答案 1 :(得分:2)
我还在部署的ShinyApp中加载了.RData
文件;我的应用程序来自此文件。我也很难理解装载是如何工作的。
在此示例here中,语句load(...)
位于server.R
中。这种方式继续在我的ShinyApp中无效(应用程序显示但立即变灰) - 我不知道为什么。解决方案只是将load(...)
语句放在global.R
文件中:load("./data/obj-result.RData", envir=.GlobalEnv)
。