如何在knitr中使用ggmap库的get_map函数?

时间:2012-06-22 19:24:52

标签: r knitr ggmap

我的所有R代码都在独立脚本中按预期运行。一旦进入R Markdown文件,get_map()调用就会中断。

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

我收到错误:

  

label:unnamed-chunk-2
  水槽警告():无水槽移除
  label:unnamed-chunk-2
  process_file(文本)出错:
    从第53-64行退出:close.connection(con)出错:连接无效
  电话:针织 - &gt; process_file
  执行停止   knitr以状态1终止

任何想法为什么knitr和get_map都不好玩?

1 个答案:

答案 0 :(得分:5)

我花了一段时间才弄明白这个问题。根本原因ggmapcloseAllConnections()mapdist()geocode()revgeocode()四个函数中对route()“粗鲁”。 knitr使用evaluate package来评估R代码,该代码打开文本连接以记录R输出。由于ggmap已关闭所有连接,evaluate将无法再次关闭其连接,从而导致您看到的错误。有关详细信息,请参阅https://github.com/hadley/evaluate/blob/master/R/watcher.r

通常应该显式关于使用close()函数关闭哪些连接,并且使用closeAllConnections()是危险的,因为这可能会关闭不应该关联的连接被关闭我不明白为什么作者必须使用它,我想你需要向他报告这个问题。最后,我们应该能够毫无错误地运行它:

library(evaluate); library(ggmap)
evaluate("map <- get_map(location = 'minneapolis', zoom = 9)")