首页 > 解决方案 > R Shiny - 第一个块中的数据集加载在第二个块中不存在......?

问题描述

我用 library learnr构建的闪亮应用程序中有一个奇怪的错误。关于我刚刚加载并刚刚可视化的对象的错误“找不到对象”(意味着该对象不存在?)

虽然我没有可重现的示例,但你们中的一些人可能会理解是什么造成了错误:

在此处输入图像描述

我不明白数据集如何存在于一个块中,而不是另一个。这是否意味着数据集未在全局环境中加载?是学习者图书馆的问题吗?

也许有人会有一个想法,或者我可以测试的东西。先感谢您。

编辑: 问题与环境/工作区有关。在第一个块中,即使我加载数据集,它也不会存储在环境中。我在第二个块中测试了该函数ls(),它告诉我工作区中没有对象。加载的数据集不在这里,我不知道为什么......

在此处输入图像描述

标签: rshinyr-environmentuser-environment

解决方案


在我看来,闪亮不存储任何数据。您必须手动将其从一个块传递到另一个块,如下所示(仅添加来自 的代码片段server):

server <- function(input, output, session) {
  output$heat <- renderPlotly({
    Name<-c("John","Bob","Jack")
    Number<-c(3,3,5)
    Count<-c(2,2,1)
    NN<-data.frame(Name,Number,Count)
    render_value(NN) # You need function otherwise data.frame NN is not visible
    # You can consider this as chunk 1
  })

  render_value=function(NN){
   # Here your loaded data is available
     head(NN)
   # You can consider this as chunk 2 
    })  
  }           
}

shinyApp(ui, server)

你可以在这里找到完整的代码:Subset a dataframe based on plotly click event

或者

按照此处的建议创建global.R文件并遵循以下 URL:R Shiny - 在应用程序开始时创建全局数据框


推荐阅读