【问题标题】:tidyverse interfering with ggplot2? cannot access map_datatidyverse 干扰 ggplot2?无法访问 map_data
【发布时间】:2017-10-27 14:13:56
【问题描述】:

在控制台中运行这些命令,输出为:

> cty0 = ggplot2::map_data("county")
> library(tidyverse)
Loading tidyverse: ggplot2
Loading tidyverse: tibble
Loading tidyverse: tidyr
Loading tidyverse: readr
Loading tidyverse: purrr
Loading tidyverse: dplyr
Conflicts with tidy packages -----------------------------------------------------------------------------------------------
filter(): dplyr, stats
lag():    dplyr, stats
map():    purrr, maps
> cty0 = ggplot2::map_data("county")
Error: ggplot2 doesn't know how to deal with data of class list

我可以调用map_data("county") 直到tidyverse 被加载,然后它会失败。如何加载已加载 tidyverse 的县地图数据?

【问题讨论】:

  • 我猜测虚线下方的项目来自控制台消息,但您确实应该澄清这一点。似乎'purrr' 中的map 函数掩盖了'maps' 包中的map 函数。如果有理由需要(地理概念)“映射”而不是(功能计算机语言概念)“映射”,则可以颠倒加载 tidyverse 和地图的顺序。您可能需要启动一个新会话才能成功。 library 函数检查包是否已加载,如果已加载,则不执行任何操作。
  • 我也会向 tidyverse 的开发人员提及这一点。

标签: r ggplot2 tidyverse


【解决方案1】:

测试后转自上面的评论:

我猜虚线下面的项目来自控制台消息,但你真的应该澄清一下。似乎“purrr”中的地图功能正在掩盖“地图”包中的地图功能。如果有理由需要(地理概念)“映射”而不是(功能计算机语言概念)“映射”,则可以颠倒加载 tidyverse 和地图的顺序。您可能需要启动一个新会话才能成功。库函数检查包是否已加载,如果已加载,则不执行任何操作。

对术语的评论。我的猜测是“映射”的计算机操作实际上是“多应用程序”(一个函数到中间结果)的收缩。如果有机会返回并将其重命名为类似于地理概念的名称,它可能会被命名为route()-ing。地理“地图”似乎是静态的二维或三维对象,或者“映射”是在此类对象上放置位置。

似乎成功了:

# In a fresh session (and my profile attaches ggplot2 by default)
> library(tidyverse)
Loading tidyverse: tibble
Loading tidyverse: tidyr
Loading tidyverse: readr
Loading tidyverse: purrr
Loading tidyverse: dplyr
Conflicts with tidy packages ---------------------------------
combine():   dplyr, Hmisc  # loaded in my .Rprofile; also attaches gglot2
filter():    dplyr, stats
lag():       dplyr, stats
matches():   dplyr, sos   #from .Rprofile; doesn't seem to clobber findFn function
src():       dplyr, Hmisc
summarize(): dplyr, Hmisc
> cty0 = ggplot2::map_data("county")

Attaching package: ‘maps’

The following object is masked from ‘package:purrr’:

    map

【讨论】:

  • 我刚刚做了相反的事情! purrr::map 但这同样有效。谢谢!
  • 知道为什么ggplot2::map_data 实际附加maps 吗?
  • 来自函数帮助页面:“描述轻松将地图包中的数据转换为适合使用ggplot2绘图的数据框。”
  • 我会说这是 map_data 中的一个 ggplot2 错误 - 它应该是 fortify(maps::map(.... 或者以其他方式从 maps 包中显式导入 map 函数。
  • 地图包的下一个版本(v3.2,在 github 上但尚未提交)应该修复附加包的要求。
猜你喜欢
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多