我最近发布了一个关于在欧洲城市绘制位置作为 Map 上的点的问题 . 见R, get longitude/latitude data for cities and add it to my dataframe
城市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
我猜我的数据框中的数据(城市)在地理编码调用中找不到 . 如果在地理编码中不匹配,有没有办法忽略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
我根本没有长/纬数据,只有NA
4 回答
你必须只对
cities
列进行地理编码(你有一个名为cities
的数据框,并且在其中有一个名为cities
的列,这有点令人困惑) . 如果有疑问,请尝试将事情分解成更小的块 .例如,一次尝试一个......
现在一次尝试向量:
现在尝试使用数据框:
我不知道 what
BOGUS_PLACE
的结果意味着...... !!这是您可以处理此问题的另一种方法 .
我刚刚发现此错误消息:
可能是由于地址被编码为数字而不是字符 . 例如,当您从数据框中进行选择时就会发生这种情况,这是我的情况 .
做:
如果结果是数字,则将其更改为char