2017-05-26 54 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繪圖的數據框。」 –