jon*_*nas 12 google-maps geocoding r
我最近发布了一个关于在欧洲城市绘制位置作为地图上的点的问题.请参阅R,获取城市的经度/纬度数据并将其添加到我的数据框中
城市xlsx文件包含欧洲约20000个城市.
尝试使用地理编码查找纬度/经度数据时收到错误消息.我已经插入了下面的部分代码:
cities <- read.xlsx("EU_city.xlsx",1)
# get frequencies
freq <- as.data.frame(table(cities))
library(plotrix)
freq$Freq <- rescale(freq$Freq, c(1,10)) # c(scale_min, scale_max)
# get cities latitude/longitude - kindly provided by google:
library(ggmap)
lonlat <- geocode(unique(cities))
cities <- cbind(freq, lonlat)
error message:
Error: is.character(location) is not TRUE
Run Code Online (Sandbox Code Playgroud)
我猜我的数据框中的数据(城市)在地理编码调用中找不到.如果在地理编码中不匹配,有没有办法忽略dtaframe中的城市
建议后更新问题.......
尝试过地理编码(as.character(cities))
然后我的框架看起来像这样:
> cities <- cbind(freq, lonlat)
> cities
cities Freq lon lat
1 ARNHEM 1.00 NA NA
2 ATHENS 3.25 NA NA
3 BAAR 1.00 NA NA
4 BAD VILBEL 1.00 NA NA
5 BILTHOVEN 1.00 NA NA
6 BOCHUM 10.00 NA NA
7 BREDA 3.25 NA NA
8 CAMBRIDGESHIRE 3.25 NA NA
9 DORDRECHT 1.00 NA NA
10 GAOETERSLOH 1.00 NA NA
11 GELSENKIRCHEN 1.00 NA NA
12 GOES 1.00 NA NA
13 GRONINGEN 3.25 NA NA
14 GUMMERSBACH-DIERINGHAUSEN 1.00 NA NA
15 HALSTEREN 1.00 NA NA
16 HANNOVER 1.00 NA NA
17 HARDERWIJK 1.00 NA NA
18 HEERLEN 3.25 NA NA
19 HILVERSUM 1.00 NA NA
Run Code Online (Sandbox Code Playgroud)
我根本没有长/纬数据,只有NA
Ben*_*ker 19
你必须只对cities列进行地理编码(有一个令人困惑的是你有一个被调用的数据框cities,并且在其中有一个名为的列cities).如果有疑问,请尝试将事情分解成更小的块.
例如,一次尝试一个......
cities <- c("ARNHEM","ATHENS","BAAR","CAMBRIDGESHIRE")
library(ggmap)
geocode(cities[1])
## lon lat
## 1 5.89873 51.9851
geocode(cities[2])
## just checking ...
geocode("ATHENS GEORGIA")
## lon lat
## 1 -83.38333 33.95
Run Code Online (Sandbox Code Playgroud)
现在一次尝试向量:
geocode(cities)
## lon lat
## 1 5.8987296 51.98510
## 2 23.7293097 37.98372
## 3 8.5286332 47.19585
## 4 0.0965375 52.27619
Run Code Online (Sandbox Code Playgroud)
现在尝试使用数据框:
mydat <- read.csv(textConnection("
cities,Freq,lon,lat
ARNHEM,1.00,NA,NA
ATHENS,3.25,NA,NA
BAAR,1.00,NA,NA
BAD VILBEL,1.00,NA,NA
BILTHOVEN,1.00,NA,NA
BOGUS_PLACE,2,NA,NA"))
geocodes <- geocode(as.character(mydat$cities))
mydat <- data.frame(mydat[,1:2],geocodes)
## cities Freq lon lat
## 1 ARNHEM 1.00 5.898730 51.98510
## 2 ATHENS 3.25 23.729310 37.98372
## 3 BAAR 1.00 8.528633 47.19585
## 4 BAD VILBEL 1.00 8.739480 50.18234
## 5 BILTHOVEN 1.00 5.210381 52.13653
## 6 BOGUS_PLACE 2.00 -92.201158 44.49091
Run Code Online (Sandbox Code Playgroud)
我不知道结果是什么BOGUS_PLACE意思...... !!