gpt4 book ai didi

r - knitr R markdown文档中的mapview错误

转载 作者:行者123 更新时间:2023-12-04 12:15:34 25 4
gpt4 key购买 nike

我一直在玩ma​​pview 包,它最近被加载到CRAN 上。 .我一直在使用演示代码并尝试将其嵌入到 knitr ma​​rkdown 文档中。不幸的是,我在执行此操作时收到一条错误消息,并且无法解释发生了什么问题。

这是错误消息,后面是可重现的示例。请注意,将代码作为直接 R 代码运行时我没有任何问题。只有当它通过 knitr 运行时,问题才会出现。如果 mapview 元素被注释掉,则不会发生错误。

我已经更新了我的所有软件包,但问题仍然存在。以下是一些系统细节:

  • Windows 7
  • R 版本 3.2.2
  • R Studio 版本 0.99.486
  • mapview 1.0.0 版
  • knitr 1.11 版
  • pandoc 1.13.1 版

pandoc.exe: Could not fetch C:\Users\my.name\Documents\R\win-library\3.2\mapview\htmlwidgets\lib\leaflet#default#VML C:\Users\my.name\Documents\R\win-library\3.2\mapview\htmlwidgets\lib\leaflet: openBinaryFile: does not exist (No such file or directory) Error: pandoc document conversion failed with error 67 In addition: Warning message: running command '"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS Mapview.utf8.md --to html --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output Mapview.html --smart --email-obfuscation none --self-contained --standalone --section-divs --template "C:\Users\my.name\Documents\R\win-library\3.2\rmarkdown\rmd\h\default.html" --variable "theme:bootstrap" --include-in-header "C:\Users\my.name\AppData\Local\Temp\Rtmpw9Mi9D\rmarkdown-str1ee41c515f3f.html" --mathjax --variable "mathjax-url:https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --no-highlight --variable "highlightjs=C:\Users\my.name\Documents\R\win-library\3.2\rmarkdown\rmd\h\highlight"' had status 67 Execution halted

---
title: "Test Mapview"
output: html_document
---


```{r}

library(ggplot2)
library(rgdal)
library(mapview)

data(diamonds)

### blow diamonds up a bit
big <- diamonds[rep(seq_len(nrow(diamonds)), 1), ]
big$cut <- as.character(big$cut)
big$color <- as.character(big$color)
big$clarity <- as.character(big$clarity)

### provide some random positions
big$x <- rnorm(nrow(big), 0, 10)
big$y <- rnorm(nrow(big), 0, 10)
coordinates(big) <- ~x+y
proj4string(big) <- CRS("+init=epsg:4326")

### view it
mapview(big)

```

最佳答案

到目前为止,mapview 中不支持 knitr。也就是说,可以通过显式调用 mapview(x)@map 来嵌入“小”数据集。 x 是一个 Spatial* 对象,多边形和线的特征少于 30000 个,点的特征少于 20000 个。这些数字是在 mapviewOptions() 中设置的默认限制,用于使用传单包渲染输出。对于具有比这些阈值更多特征的数据集,我们对点使用特殊函数 mapview:::fpView(),对多边形和线使用 mapview:::bView()。对于这些特殊功能,目前不存在 knitr 支持。

这意味着使用 knitr 嵌入更大数据集的唯一选择是将“maxlines”、“maxpoints”或“maxpolygons”的阈值设置为适当的数字(高于数字特征),以便使用完成渲染传单包功能。但是您需要记住,leaflet 在处理大型数据集时可能不再流畅(或完全崩溃)。

所以,对于上面的例子:

---
title: "Test Mapview"
output: html_document
---


```{r}

library(ggplot2)
library(rgdal)
library(mapview)

mapviewOptions(maxpoints = 55000) # diamonds has some 53000 rows


data(diamonds)

### blow diamonds up a bit
big <- diamonds[rep(seq_len(nrow(diamonds)), 1), ]
big$cut <- as.character(big$cut)
big$color <- as.character(big$color)
big$clarity <- as.character(big$clarity)

### provide some random positions
big$x <- rnorm(nrow(big), 0, 10)
big$y <- rnorm(nrow(big), 0, 10)
coordinates(big) <- ~x+y
proj4string(big) <- CRS("+init=epsg:4326")

### view it
mapview(big)@map

```

应该生成一个显示带有点的 map 的文档,但正如我所说,请注意这可能超出了传单包的功能。

此外,我想在这里提出另一点。 knitr 是否是为此类大数据集创建 html 文件的合适方法,这一点值得怀疑。 knitr 将所有内容(几何图形和属性)存储在一个 html 文件中,该文件可能会很快变得非常大并且变得相当迟钝。

因此,对于此类大数据,也许一个 Shiny 的解决方案是更好的选择。

到目前为止,我们的重点是支持大数据集在查看器/浏览器中正常工作。 knitr 集成有望在某个阶段实现,但可能需要一些时间才能正确完成。

希望这可以澄清,最好的蒂姆

关于r - knitr R markdown文档中的mapview错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com