我最近发布了一个问题,关于如何将欧洲城市的位置绘制为地图上的点。参见 R, get longitude/latitude data for cities and add it to my dataframe
cities xlsx 文件包含大约20000个欧洲城市。
尝试使用geocode查找纬度/经度数据时,我收到了一个错误消息。以下是部分代码:
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
我猜测我的数据框中的数据(城市)在地理编码调用中没有找到。 如果在地理编码中无法匹配该城市,有没有一种方法可以忽略数据框中的城市。
根据建议更新问题......
尝试使用 geocode(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
我完全没有经纬度数据,只有NA
geocode(as.character(cities))
怎么样? - Ben Bolker