我使用小叶包创建了一个包含地图的flexdashboard。

我需要能够在地图区域内选择标记,以便我可以基于这些标记显示摘要统计信息。 leaflet-locationfilter似乎提供了我所需要的,但是我需要弄清楚如何在生成的HTML文件中包括它。我尝试在flexdashboard标头中使用“包含”,但这会产生错误。这是一个简单的测试用例:

---
title: "Dashboard Title"
output:
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    includes: includes(in_header = "TEST.HTML", before_body = "TEST.HTML", after_body = "TEST.HTML")
---


...其中TEST.HTML是:

<!-- TEST TEST TEST -->


但这失败了:


输出文件:Dashboard.knit.md

include $ in_header中的错误:$运算符对原子向量无效
调用:->->覆盖-> pandoc_include_args
执行停止


我不得不求助于the code来弄清楚该怎么做,因为它似乎在任何地方都没有记录,但是我显然错过了一些东西。

有什么建议?

最佳答案

不要像奇怪的那样使用R的内置includes函数(如(第4页)),而应使用YAML:

---
title: "Dashboard Title"
    output:
    flexdashboard::flex_dashboard:
        orientation: columns
        vertical_layout: fill
        includes:
            in_header: "TEST.HTML"
            before_body: "TEST.HTML"
            after_body: "TEST.HTML"
---


但是,除了通过flexdashboard之外,还有一种包含传单插件的方法。使用传单自己的dependencies参数:

map$dependencies <- c(map$dependencies, list(htmlDependency(
    name = "Leaflet.locationfilter",
    version = "0.1",
    src = "PATH_TO_DIRECTORY",
    script = "locationfilter.js",
    stylesheet = "locationfilter.css"
)))

08-20 00:29