2017-05-26 56 views
9

在控制台中运行这些命令,输出结果是:tidyverse干扰ggplot2?不能访问map_data

> 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的县地图数据?

+3

我猜测,虚线下方的项目是从控制台消息,但你真的应该澄清。似乎'purrr'中的'map'函数掩盖了'maps'包中的'map'函数。如果您需要“映射”(的地理概念)比您需要(映射)的(功能 - 计算机语言概念)更多的原因,则可以颠倒加载tidyverse和映射的顺序。您可能需要开始新的会话才能成功。 '库'函数检查一个包是否已经加载,如果是这样,什么也不做。 –

+0

我会提到这与开发者tidyverse以及。 –

回答

8

从上面传递的评论测试后:

我猜测,虚线下方的项目是从控制台消息 ,但你真的应该澄清的是 。似乎'purrr'中的地图功能掩盖了'maps'包中的地图功能。如果您需要“映射”(的地理概念)比您需要(映射)的(功能 - 计算机语言概念)更多的原因,则可以颠倒加载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 
+0

我刚刚做了相反的事情! '呜呜呜::地图',但这同样适用。谢谢! –

+0

任何想法为什么'ggplot2 :: map_data'实际上连接'maps'? – Axeman

+0

从功能帮助页面:“描述 轻松地将数据从地图包转换为适合使用ggplot2绘图的数据框。” –