我正在起草一个简单的Shiny App,它可以访问动态图表和相应的表格。 server.R
代码的相关部分如下所示:
output$some_plot<- renderPlot({
# Subset data on change in the indicator selection
chrt_demo_dta <- subset(x = dta_la_demo,
subset = <<my-conditions>>>)
# Define the demography chart
ggplot(data = chrt_demo_dta, aes(x = variable_a, y = variable_b)) +
geom_line(aes(colour = GEOGRAPHY_NAME), size = 2) +
theme_bw()}, height = 650, width = 800)
# Section generating table
output$chrt_demo_dta_tbl <- renderTable({chrt_demo_dta})
当我尝试访问表时出现问题我收到以下错误消息:
func()中的错误:找不到对象'chrt_demo_dta'
对象chrt_demo_dta
似乎是在renderTable
的范围规则之外创建的。我的问题是如何实现以下目标:
subset
中嵌入renderPlot
命令renderTable
我知道代码不是完全可重现的,但在这个阶段我不一定要寻找特定的解决方案,而是更通用的指导,是否可以访问在一个服务器元素中创建的对象来自其他服务器元素。如果推动推动,我可以在一个函数中封装子集化机制并调用它两次,但它似乎是相当混乱的解决方案。
答案 0 :(得分:0)
&lt;&lt; - 运营商可能会产生不良后果。它将结果发送到共享环境,在该环境中,会话的所有用户都可以看到它。这不仅会造成他们试图互相覆盖的竞争条件,还可能会将机密工作暴露给他人。您有两个解决方案:1)重复每个本地环境中的步骤,2)使用唯一名称(例如Sys.time()+数据哈希)将结果写入磁盘。然后你可以在其他地方需要时检索它。不要忘记删除已保存的文件,否则您的存储空间将被消耗。
答案 1 :(得分:0)