R闪亮的导入传单html小部件对象

Posted

技术标签:

【中文标题】R闪亮的导入传单html小部件对象【英文标题】:R shiny import leaflet html widget object 【发布时间】:2018-10-31 19:18:26 【问题描述】:

我有一个作为 .rds 文件导出的传单图。 我现在如何在闪亮的应用程序中输出这个图? 下面是我尝试过的最小示例代码,目前给出“警告:FUN 中的错误:参数不是字符向量 [没有可用的堆栈跟踪]”

library(shiny)
shinyUI<-fluidPage(mainPanel(
uiOutput("test")
)
)
shinyServer<-function(input,output)
output$test<-renderUI(readRDS("./Plots/LeafletPlot.rds"))

shinyApp(shinyUI,shinyServer)

请注意,我也尝试过使用 renderLeaflet 和 LeafletOutput 但无济于事。 从控制台运行 readRDS("./Plots/LeafletPlot.rds") 确实可以毫无问题地加载传单地图。

非常感谢任何帮助,谢谢!

【问题讨论】:

readRDS("./Plots/LeafletPlot.rds") 放在应用的开头或global.R 中,并明确使用leafletOutputrenderLeaflet 来映射您的数据 谢谢@G.Cocca;这是原则上的解决方案;但是我仍然遇到问题,因为传单图是在使用应用程序时在前一个阶段生成的,所以我无法在开始时加载它(输出图是前一个输出的条件面板,所以我不能把它放在全局中。 R 要么)。有没有办法从服务器内部将外部文件加载到 R(以先前的输出为条件)? 实际上,我可能会走在应用程序本身内实际生成传单的路线,而不是通过这种中介导出 .rds 并随后重新导入(我在现有套件的基础上构建应用程序)函数,因此存在这个 .rds 中介)。 【参考方案1】:
# Create your object 
library(leaflet)

map <- leaflet::leaflet() %>%
  leaflet::addProviderTiles(providers$OpenStreetMap)

saveRDS(object = map, file = "map.rds")

# Read it at the beginning

map2 <- readRDS("map.rds")

library(shiny)
shinyUI<-fluidPage(mainPanel(
  leafletOutput("test")
 )
)

shinyServer<-function(input,output)
  output$test<-renderLeaflet(map2)


shinyApp(shinyUI,shinyServer)

【讨论】:

以上是关于R闪亮的导入传单html小部件对象的主要内容,如果未能解决你的问题,请参考以下文章

如何以闪亮的方式内联显示小部件

是否有一个带有“重置”按钮的闪亮 textInput 小部件?

如何以闪亮的方式遍历多个上传小部件?

默认情况下,闪亮的应用程序数据对于特殊输入小部件不可见

在 DT 表中的一行中嵌入闪亮的小部件

根据闪亮小部件的 if 条件将值替换为数据表