首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将shiny.tag.list保存为html的r代码,如查看器->导出->另存为网页按钮所做的那样

将shiny.tag.list保存为html的r代码,如查看器->导出->另存为网页按钮所做的那样
EN

Stack Overflow用户
提问于 2020-04-06 18:51:44
回答 1查看 658关注 0票数 2

我有一个传单地图,我已经修改,有一个特殊的CSS弹出下面的建议here。现在,我想将结果保存为HTML网页。结果对象的类型是shiny.tag.list,我可以用查看器查看它,并使用Export->Save as web page按钮手动将其导出到HTML.然而,我找不到R代码来做同样的操作。我已经尝试了mapview包中的mapshot函数和htmltools中的saveWidget函数,但它们都失败了,并显示以下错误:

代码语言:javascript
运行
复制
> saveWidget(lf,"test.html")
Error in .getNamespace(pkg) : 
 invalid type/length (symbol/0) in vector allocation

我还尝试过htmltools包的save_html函数,但这会生成一个非独立的HTML文件。

我该如何做Export->Save as web page按钮对R代码所做的事情?

以下是演示这些问题的一些示例代码:

代码语言:javascript
运行
复制
library(sf)
library(leaflet)
library(htmltools)
library(mapview)

x = data.frame(lat=c(44,45),lon=c(3,2),
               label=c("p1","p2"))

x = st_as_sf(x,coords=c("lon","lat"),crs=4326)

lf = x %>% leaflet %>% addTiles() %>% addMarkers(label=~label,popup=~label)
st = browsable(
  tagList(list(
    tags$head(
      tags$style(".leaflet-popup-content-wrapper {background-color: #ff0000;}")
    ),
    lf
  ))
)

saveWidget(st,"test.html") # Fails with error
mapshot(st,"test.html") # Fails with same error
save_html(st,"test.html") # Produces HTML with external dependencies
EN

回答 1

Stack Overflow用户

发布于 2020-08-05 04:48:33

我遇到了同样的问题,并用htmlwidgets::prepandContent解决了它

代码语言:javascript
运行
复制
library(sf)
library(leaflet)
library(htmltools)
library(mapview)
library(htmlwidgets)

x = data.frame(lat=c(44,45),lon=c(3,2),
               label=c("p1","p2"))

x = st_as_sf(x,coords=c("lon","lat"),crs=4326)

lf = x %>% leaflet %>% addTiles() %>% addMarkers(label=~label,popup=~label)


st = lf %>% prependContent(
    tags$head(
      tags$style(".leaflet-popup-content-wrapper {background-color: #ff0000;}")
    )
    )

saveWidget(st,"test.html") # works!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61058110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档