【发布时间】:2013-05-28 06:36:16
【问题描述】:
我正在尝试使用 knitr 中的 ggmap 库包含地图:
library(ggmap)
murder = subset(crime, offense='murder')
qmplot(lon, lat, data=murder)
它在 knitr 之外运行良好,但是当我尝试在 knitr 中运行此代码块时,出现错误:
UseMethod("depth") 中的错误:没有适用于 'depth' 的方法应用于“NULL”类的对象
而且最终的 PDF 中没有地图
我尝试将 qmplot 行包裹在 evaluate(...) 中,但这不起作用
库的输出(knitr);会话信息()
> library(knitr)
> sessionInfo()
version 3.0.1 (2013-05-16)
Platform: i686-redhat-linux-gnu (32-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics utils datasets grDevices methods base
other attached packages:
[1] knitr_1.2 vimcom_0.9-8 setwidth_1.0-3
loaded via a namespace (and not attached):
[1] digest_0.6.3 evaluate_0.4.3 formatR_0.7 stringr_0.6.2 tools_3.0.1
我还尝试通过 Rscript(即不在 VIM 中)运行相同的代码:
Rscript -e "library(knitr); knit('map.Rnw')"
我得到一个类似的错误:
Error in UseMethod("depth") :
no applicable method for 'depth' applied to an object of class "NULL"
Calls: knit ... grid.draw -> grid.draw.gTableChild -> upViewport -> depth
使用 ggmap v 2.3 和 ggplot v 0.9.3.1
【问题讨论】:
-
我无法重现该问题。请发帖
library(knitr); sessionInfo()。 -
而
ggmap是v2.3?这很奇怪;我的环境和你几乎一模一样,但还是无法重现问题