当前位置:  开发笔记 > 编程语言 > 正文

knitr R markdown文档中的mapview错误

如何解决《knitrRmarkdown文档中的mapview错误》经验,为你挑选了1个好方法。

我一直在玩mapview包,最近已加载到CRAN上.我一直在玩演示代码并尝试将其嵌入到knitr markdown文档中.不幸的是,当我这样做时,我收到一条错误消息,我无法解释出现了什么问题.

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

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

Windows 7的

R版本3.2.2

R Studio版本0.99.486

mapview版本1.0.0

针织版1.11

pandoc版本1.13.1

pandoc.exe:无法获取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:不存在(没有这样的文件或目录)错误:pandoc文件转换失败,错误67另外:警告消息:正在运行命令'"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" - 变量"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"h ighlightjs = C:\ Users\my.name\Documents\R\win-library\3.2\rmarkdown\rmd\h\highlight"'has status 67执行暂停

---
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)

```

TimSalabim.. 5

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

这意味着您使用knitr嵌入较大数据集的唯一选择是将"maxlines","maxpoints"或"maxpolygons"的阈值设置为适当的数字(高于数字要素),以便使用传单包完成渲染功能.但是你需要记住,传单可能不再适用于大型数据集(或完全崩溃).

所以,对于上面的例子:

---
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

```

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

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

因此,对于这样的大数据而言,闪亮的解决方案可能是更好的选择.

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

希望这澄清,最好蒂姆



1> TimSalabim..:

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

这意味着您使用knitr嵌入较大数据集的唯一选择是将"maxlines","maxpoints"或"maxpolygons"的阈值设置为适当的数字(高于数字要素),以便使用传单包完成渲染功能.但是你需要记住,传单可能不再适用于大型数据集(或完全崩溃).

所以,对于上面的例子:

---
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

```

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

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

因此,对于这样的大数据而言,闪亮的解决方案可能是更好的选择.

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

希望这澄清,最好蒂姆

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有