3

私の R コードはすべて、スタンドアロン スクリプトで期待どおりに実行されます。R Markdown ファイル内に入ると、get_map() 呼び出しが失敗します。

map <- get_map(location = 'minneapolis', zoom = 9)

エラーが発生します:

label: unnamed-chunk-2
sink() の警告: 削除するシンクがありません
label: unnamed-chunk-2
process_file(text)の
エラー: 行 53-64 から終了: close.connection(con) のエラー: 無効な接続
呼び出し: Knit -> process_file
実行が停止した Knitr はステータス 1 で終了しました

Knitr と get_map がうまく機能しない理由はありますか?

4

1 に答える 1

6

問題を理解するのにしばらく時間がかかりました。根本的な理由は、その機能の 4 つ ( 、、および)ggmapで「失礼」であったことです。パッケージを使用してR コードを評価し、テキスト接続を開いて R 出力を記録します。はすべての接続を閉じているため、接続を再度閉じることができず、これがエラーの原因です。詳細については、 https://github.com/hadley/evaluate/blob/master/R/watcher.rを参照してください。closeAllConnections()mapdist()geocode()revgeocode()route()knitrevaluateggmapevaluate

通常、関数を使用してどの接続を閉じるかを明示する必要があります。これを使用すると、閉じられるはずのない接続が閉じられる可能性があるためclose()危険です。closeAllConnections()なぜ作者がそれを使わなければならないのか理解できません。この問題を彼に報告する必要があると思います。最後に、これをエラーなしで実行できるはずです。

library(evaluate); library(ggmap)
evaluate("map <- get_map(location = 'minneapolis', zoom = 9)")
于 2012-06-23T00:56:59.120 に答える