1

我一直在玩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

我想在“列”后面加上geocode. 具体来说,如果上面的数据框被命名为密歇根州,我正在抓取坐标

lapply(as.vector(michigan$City), geocode)

它接受一个字符串(在本例中为城市名称)并使用 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

我想将纬度和经度值michigan作为“列”附加到数据框中,但是因为我的结果lapply是列表列表,这比仅仅切片一些数组更棘手 - 惯用的最佳方法是什么在 R?

4

1 回答 1

5

它很简单:

cbind(your_df, geocode(your_df$City))
于 2013-07-10T20:21:55.600 回答