我一直在玩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
我想用“{1}}返回的纬度和经度条目附加”列“。具体来说,如果上面的数据框命名为密歇根州,我就会用
抓取坐标geocode
采用字符串(在本例中为城市名称)并使用Google Maps api猜测坐标,生成列表列表:
lapply(as.vector(michigan$City), geocode)
我想将纬度和经度值附加到[[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
数据框作为“列”,但由于我的michigan
的结果是列表列表,这比仅仅更简单切片一些数组 - 在R中以惯用方式执行此操作的最佳方法是什么?
答案 0 :(得分:5)
这很简单:
cbind(your_df, geocode(your_df$City))