web-dev-qa-db-ja.com

R:ggmapからのget_map()/ get_googlemap()のエラー

GGmapを使用して、自動車の自動車事故の状態別のプロットを作成しようとしています。マップには、州での自動車事故の数に基づいてサイズが調整されたドットがあります。

特に、この ブログ投稿 のクラスターの視覚化セクションに示されているusa-plotを再作成しようとしています。

しかし、マップを作成しようとするたびに、このエラーが発生します。

Error in aperm.default(map, c(2, 1, 3)) : 
  invalid first argument, must be an array

Google APIをセットアップしましたが、ヒットを受け取っていることがわかりました。私もそれを有効にし、キーを持っています。

さらに、次のコマンドを使用してgithubアカウントからGGmapをインストールしました。

devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)

cRANは更新されていないため。

私も数回再起動してRを終了しましたが、エラーは解決しません。

単に実行したとしても:

get_map()

それでもエラーが発生します:

Error in aperm.default(map, c(2, 1, 3)) : 
      invalid first argument, must be an array

以下は私のコードで、ブログ投稿のコードに似ています。

mydata$State <- as.character(mydata$State)
mydata$MV.Number = as.numeric(mydata$MV.Number)
mydata = mydata[mydata$State != "Alaska", ]
mydata = mydata[mydata$State != "Hawaii", ]
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
library(ggmap)
ggmap::register_google(key = "...") #my key is here
for (i in 1:nrow(mydata)) {
  latlon = geocode(mydata[i,1])
  mydata$lon[i] = as.numeric(latlon[1])
  mydata$lat[i] = as.numeric(latlon[2])
}
mv_num_collisions = data.frame(mydata$MV.Number, mydata$lon, mydata$lat)

colnames(mv_num_collisions) = c('collisions','lon','lat')
usa_center = as.numeric(geocode("United States"))


USAMap = ggmap(get_googlemap(center=usa_center, scale=2, zoom=4), 
extent="normal")
USAMap + 
   geom_point(aes(x=lon, y=lat), data=mv_num_collisions, col="orange", 
alpha=0.4, size=mv_num_collisions$collisions*circle_scale_amt) +  
   scale_size_continuous(range=range(mv_num_collisions$collisions))

this のようにマップが出力されることを期待しています

しかし、私はこのエラーに合格したようには見えません。

誰かが助けることができればそれは素晴らしいでしょう。

さらに情報が必要な場合はお知らせください。

ありがとうございました。

10
mrsquid

このエラーは、Googleキーで適切なAPIアクティビティが有効になっていないことが原因です。

Google APIコンソールに移動し、API「Maps Static API」を有効にすると、機能するはずです。

8
Roger-123