【问题标题】:How to find the county for each city in a vector of city names using R?如何使用 R 在城市名称向量中找到每个城市的县?
【发布时间】:2016-04-18 05:04:38
【问题描述】:

给定一串城市名称,如何使用 R 找到每个城市所属的县?我看过mapacs 包,但我对它们没有经验。目标是找到与我数据中的城市相关联的县级数据。

假设你有以下几点:

city <- c("RALEIGH", "HOLLYWOOD", "DALLAS", "MOUNTAIN VIEW", "OKLAHOMA CITY", "ORLANDO")
state <- c("NC", "CA", "TX", "CA", "OK", "FL")

【问题讨论】:

  • 您可以查看library(countrycode) 请考虑提供可重现的示例。
  • @akrun 更新了可重现的示例
  • 您提供的内容还不是可重现的示例。这个问题看起来更像是一个工具请求。一个可重现的示例类似于“我已经尝试过这种方法,但一直产生这个错误。我该如何解决这个问题,或者它在概念上是错误的,我需要研究其他东西”。
  • @RomanLuštrik 好吧,我不知道该尝试什么,这就是我要征求的建议。我不知道从哪里开始。 library(countrycode) 看起来不行
  • 不幸的是,r 标签并不是寻找工具的最佳位置。欢迎访问R-publicGMTs 聊天室,看看是否有人可以提供帮助。

标签: r geolocation


【解决方案1】:

"您可以从 GeoNames.org 获取制表符分隔值格式的城市/州信息。数据免费、全面且结构良好。对于美国数据,请在免费邮政编码数据页面获取 US.txt 文件。该页面上的 readme.txt 文件描述了格式。” See post by Joshua Frank

## Download the file

temp <- tempfile()
download.file("http://download.geonames.org/export/zip/US.zip",temp)
con <- unz(temp, "US.txt")
US <- read.delim(con, header=FALSE)
unlink(temp)

## Find state and county

colnames(US)[c(3,5,6)] <- c("city","state","county")
US$city <- tolower(US$city)
myCityNames <- tolower(c("RALEIGH", "HOLLYWOOD", "DALLAS", "MOUNTAIN VIEW","OKLAHOMA CITY", "ORLANDO"))
myCities <- US[US$city %in% myCityNames, ]
myCities <- myCities[c("city","state","county")]
myCities <- myCities[!duplicated(myCities),]
myCities <- myCities[order(myCities$city, myCities$state, decreasing = TRUE), ]

问题是不同州有多个同名城市。

如果您准确查找您提到的州的城市,这可能会有所帮助:

myPlaces <- data.frame(city = myCityNames, state = c("NC", "CA", "TX", "CA", "OK", "FL"))
merge(myCities, myPlaces, by = c("city", "state") ,all.y=TRUE)

【讨论】:

  • 这听起来很有希望。我今晚去看看
猜你喜欢
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 2012-06-22
相关资源
最近更新 更多