motsu's blog

大学生のブログ, 主に統計とか 数学とか 諸々の話題

Rでの「関数 "%>%" を見つけることができませんでした」の対処法

経緯

Rのleafletパッケージを使おうと思い、

library(leaflet)
shape %>% leaflet() %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addPolygons(fillOpacity = 0.5,weight = 1,fillColor = "lightblue")

として上記のコードを実行すると、

shape %>% leaflet() %>% addTiles() %>% addProviderTiles(providers$CartoDB.Positron) %>%  でエラー: 
   関数 "%>%" を見つけることができませんでした 

とパイプ演算子が使えない状況になった。

解決方法(結論)

install.packages("tidyverse")

解決方法(過程)

Error: could not find function "%>%"を読んで、以下のコードを実行した。

install.packages("magrittr") 
install.packages("dplyr")    
library(magrittr) 
library(dplyr)    

その結果...

leaflet(.) でエラー:  関数 "leaflet" を見つけることができませんでした    

とleafletそのもの自体もインストールできていないことが判明。

そこで、

 library(leaflet)

を実行すると、

 エラー: package or namespace load failed for ‘leaflet’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
  ‘digest’ という名前のパッケージはありません 
 追加情報:  警告メッセージ: 
 パッケージ ‘leaflet’ はバージョン 3.5.3 の R の下で造られました 

というエラーメッセージがでてきたことから、Rのバージョンの違いによるエラーであることが判明した。そこでRのバージョンをダウングレードR-3.5.3 for Windows (32/64 bit)して再度試してみると...

 shape %>% leaflet() %>% addTiles() %>% addProviderTiles(providers$CartoDB.Positron) %>%  でエラー: 
   関数 "%>%" を見つけることができませんでした 

と変わらず。%>%関数はtidyverseパッケージに入ってるはず...

install.packages("tidyverse")

を行い試してみると、うまくいった! キャプチャ.JPG

参考

Error: could not find function "%>%"
R の パイプ でエラー ”関数 "%>%" を見つけることができませんでした ”Error: could not find function "%>%””