Shinylive无法读取外部CSV数据,仪表盘无显示求助
问题原因与解决办法
问题出在standalone: true配置上:开启独立模式后,Shinylive代码会在完全隔离的环境中运行,和文档之前的R代码块(包括setup块)不共享任何变量,导致server函数调用data时找不到该对象,因此表格无法渲染。
解决办法
方案一:在Shinylive代码块内读取数据
把读取CSV的逻辑移到Shinylive代码块内部,确保数据在应用运行环境中可访问:
#| viewerHeight: 600 library(shiny) # 直接在Shinylive环境中读取在线CSV data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv") ui <- fluidPage( tableOutput("table") ) server <- function(input, output, session){ output$table <- renderTable({data[1:10,]}) } shinyApp(ui, server)
方案二:关闭独立模式
去掉Shinylive代码块的standalone: true配置,让Shinylive共享文档中R代码块的环境,这样setup块定义的data就能被server函数调用:
--- title: "Wine Data Analysis" format: html: grid: body-width: 1400px filters: - shinylive --- ```{r, results='hide', echo=FALSE, message=FALSE, warning=FALSE} #| context: setup data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv")
#| viewerHeight: 600 library(shiny) ui <- fluidPage( tableOutput("table") ) server <- function(input, output, session){ output$table <- renderTable({data[1:10,]}) } shinyApp(ui, server)
两种方案均可解决仪表盘无内容的问题:若需应用完全独立运行选方案一;若要复用文档中已加载的数据选方案二。 内容的提问来源于stack exchange,提问作者Majid Zaremehrjardy
相关产品推荐
相关产品推荐

