Knitr に ggmap ライブラリを使用してマップを含めようとしています。
library(ggmap)
murder = subset(crime, offense='murder')
qmplot(lon, lat, data=murder)
Knitr の外では問題なく動作しますが、knitr でこのコード チャンクを実行しようとすると、エラーが発生します。
UseMethod("depth") のエラー: クラス "NULL" のオブジェクトに適用される 'depth' に適用可能なメソッドがありません
そして、最終的なPDFには地図がありません
qmplot 行を evaluate(...) 内にラップしようとしましたが、うまくいきませんでした
ライブラリの出力(knitr); sessionInfo()
> 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 の使用