根据文档,使用 R 的“leaflet”包创建的 Leaflet 输出可以包含在 RMarkdown 中。
这在 RMarkdown 输出为 html 时有效:
---
title: "Rmarkdown HTML including Leaflet"
output: html_document
---
Show "Leaflet for R" within html: works.
```{r}
library(leaflet)
leaflet() %>%
addTiles %>% # Add default OpenStreetMap map tiles
setView(lng = 5.0, lat = 51.0, zoom = 6)
```
Run Code Online (Sandbox Code Playgroud)
但是当 RMarkdown 输出是演示文稿时失败:
---
title: "Rmarkdown Presentation including Leaflet"
output:
revealjs::revealjs_presentation
---
Show "Leaflet for R" within Rmarkdown presentation: fails.
```{r}
library(leaflet)
leaflet() %>%
addTiles %>% # Add …Run Code Online (Sandbox Code Playgroud) 目标是在从以 base64 编码和 gzip-ped 格式存储此数据的应用程序导出后使配置和代码可读。
带有代码的字符串示例
"H4sIAAAAAAAAAIWSS0vEMBSF9/0VIYvubHUnNGlhfIDCwOCMuCyhTeOVTBLzGPTfmzY60yKju+Tc8N1z7o2RQYBqmTESuGthaDuHXJpWTRknzsZfowK0DrSi+Ki4x4qrTPShB8fPu/uIaN3VGVsGB4s49BcnrDKGjsJlwaF5P0sMtxY/swLadBeN/6jda9eBjrxfwrytQvcMjLgI3zLI999FJEuYSGmHpNdp9Gk7xWyQXkilRbL2NXnGdS18twuTvQfsqJkqHU6x0n7KlY5MLX2UjYOyxZqacBFIeDZyxdGettusYiwn+h7X/QadBnadY7oNVaGDS8eoXciZMAyTlckNxh+Vyid//4Qv+y3JeLwIAAA=="
Run Code Online (Sandbox Code Playgroud)
使用以下命令在 Linux shell 中解码和压缩:
echo $1 | base64 -d | gunzip -c
Run Code Online (Sandbox Code Playgroud)
结果是:
plugin_applies_if_config<split>plugin_config=<?xml version="1.0" encoding="UTF-8"?>
<BusinessRule>
<BusinessPlugin BusinessRulePluginID="JavaScriptBusinessConditionWithBinds">
<Parameters>
<Parameter ID="Binds" Type="java.lang.String"><?xml version="1.0" encoding="UTF-8"?>
<BindMap/>
</Parameter>
<Parameter ID="ErrorMessages" Type="java.lang.String"></Parameter>
<Parameter ID="JavaScript" Type="java.lang.String">return false;</Parameter>
</Parameters>
</BusinessPlugin>
</BusinessRule>
<split>
Run Code Online (Sandbox Code Playgroud)
任务完成。...几乎。
由于我有数百个这样的字符串,因此我想在脚本中执行与 Linux shell 中类似的命令。因为我只知道一些 R,所以我尝试使用 R。我成功地从从应用程序导出的 XML 文档中提取了字符串,并将它们转换为包含列 id、name 和 code 的数据框中。
以下是我尝试逐步重现 Linux 命令的简化示例。
encoded = "H4sIAAAAAAAAAIWSS0vEMBSF9/0VIYvubHUnNGlhfIDCwOCMuCyhTeOVTBLzGPTfmzY60yKju+Tc8N1z7o2RQYBqmTESuGthaDutBhDERcHXJpWTRknzsZfowK0DrSi+Ki4x4qrTPShB8fPu/uIaN3VGVsGB4s49BcnrDKGjsJlwaF5P0sMtxY/swLadBeN/6jda9eBjrxfwrytQvcMjLgI3zLI999FJEuYSGmHpNdp9Gk7xWyQXkilRbL2NXnGdS18twuTvQfsqJkqHU6x0n7KlY5MLX2UjYOyxZqacBFIeDZyxdGettusYiwn+h7X/QadBnadY7oNVaGDS8eoXciZMAyTlckNxh+Vyid//4Qv+y3JeLwIAAA=="
decoded = base64enc::base64decode(what=encoded)
# decoded = openssl::base64_decode(encoded)
# decoded = jsonlite::base64_dec(encoded) …Run Code Online (Sandbox Code Playgroud)