我一直在玩ggmap R包,我真的很喜欢它用于显示地理数据的绘图功能.我一直试图用geocode
函数制作一些城市人口数据的简单图,但我无法弄清楚如何以逻辑方式排列数据.就目前而言,我已经将数据结构化为一个列表
City Type Population
1 Detroit city 713777
2 Grand Rapids city 188040
3 Warren city 134056
4 Sterling Heights city 129699
5 Lansing city 114297
6 Ann Arbor city 113934
Run Code Online (Sandbox Code Playgroud)
并且我想用"返回的纬度和经度条目"附加"列" geocode
.具体来说,如果上面的数据框架被命名为密歇根州,我正在抓住坐标
lapply(as.vector(michigan$City), geocode)
Run Code Online (Sandbox Code Playgroud)
它采用字符串(在本例中为城市名称)并使用Google Maps api猜测坐标,生成列表列表:
[[1]]
lon lat
1 -83.04575 42.33143
[[2]]
lon lat
1 -85.66809 42.96336
[[3]]
lon lat
1 -83.0282 42.493
[[4]]
lon lat
1 -83.0302 42.58031
[[5]]
lon lat
1 -84.55553 42.73253
[[6]]
lon lat
1 -83.74304 42.28083
Run Code Online (Sandbox Code Playgroud)
我想将纬度和经度值附加到michigan
数据框作为"列",但由于我的结果lapply
是列表,这比仅切片一些数组更棘手 - 这是最好的方法来执行此操作在R?