如何在HTML markdown文档中插入HTML小部件对象(Leaflet map或HTML table)?

时间:2017-06-05 14:58:25

标签: r leaflet r-markdown

我尝试过很多东西,包括print(leafletMap),只是调用对象本身。是否有一个特定的函数,我要包装我的对象,以使其在文档中呈现?

2 个答案:

答案 0 :(得分:2)

如果您使用Rstudio创建RMarkdown文件或RHMTL文件然后包含到这样的块代码中(您将需要包knitr转换为hmtl)

```{r setup, include=TRUE}

library(leaflet)
m<-leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R")

m
```

否则您可以像使用以下代码的html文档一样保存 喜欢这篇文章https://stackoverflow.com/a/31642030/7600734

中的建议
library(htmlwidgets)
saveWidget(m, file="m.html")

答案 1 :(得分:1)

我已经在这里找到了解决这个问题的方法,感谢Jonathan:How to use objects from global environment in Rstudio Markdown

问题是R Markdown要求渲染的对象在代码块内生成,即每次编织文档时都会生成。 R Markdown的制作者故意这样做,以最大限度地提高报告的可重复性(我可以欣赏!)。每次编织新文档时都会创建并使用新的“不可见”环境,从而导致进程无法识别其他环境中的对象。

不幸的是,我的报告只是一个更大的分析的一小部分,而且从Rmd文件中完全运行代码太麻烦了。

解决方案:从命令行编织并保存文档。

rmarkdown::render("path/your_doc.Rmd")