You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R批量将英国邮政编码匹配至剥夺指数?

批量将英国邮政编码转换为2019剥夺指数的R方案

你可以通过以下两种主流方法在R中批量完成这个任务,不用手动访问网页:


方法1:使用postcodesioR + 官方IMD数据集

这个方法先通过API把邮政编码映射到对应的Output Area(OA,IMD的统计单元),再匹配官方的剥夺指数数据。

步骤1:安装并加载必要的包

# 安装包(首次运行时执行)
install.packages(c("postcodesioR", "dplyr", "readr"))

# 加载包
library(postcodesioR)
library(dplyr)
library(readr)

步骤2:批量查询邮政编码对应的OA

假设你有一个包含邮政编码的数据框postcodes_df,其中存储邮编的列名为postcode:

# 批量查询(API单次请求建议不超过1000条,数据量大的话可分批处理)
postcode_data <- batch_postcode_lookup(postcodes_df$postcode)

# 转换为数据框并提取关键信息
postcode_oa <- bind_rows(postcode_data) %>%
  select(postcode, oa = codes$oa) %>%
  filter(!is.na(oa)) # 过滤无效或无法匹配的邮政编码

步骤3:加载并匹配2019 IMD数据

你可以从英国国家统计局(ONS)下载2019 IMD核心数据集(包含OA对应的剥夺指数),然后读入R中完成匹配:

# 读入本地下载的IMD数据文件(示例文件名:"IMD_2019_OA.csv")
imd_data <- read_csv("IMD_2019_OA.csv")

# 匹配邮政编码与剥夺指数
final_data <- postcode_oa %>%
  left_join(imd_data, by = c("oa" = "OA_CODE")) %>%
  select(postcode, oa, IMD_Rank, IMD_Decile) # 保留需要的字段,比如排名和分位数

方法2:使用ukdepriv包(更简化的方式)

ukdepriv包封装了IMD数据和邮政编码映射逻辑,能更直接地获取结果:

步骤1:安装并加载包

# 先安装devtools(如果未安装)
install.packages("devtools")
# 从GitHub安装ukdepriv包
devtools::install_github("matthewgthomas/ukdepriv")

library(ukdepriv)

步骤2:批量获取剥夺指数

# 假设你的邮政编码向量为postcodes_vec
imd_results <- get_imd(postcodes_vec, year = 2019)

# 查看结果,包含postcode、IMD排名、分位数等核心字段
head(imd_results)

注意事项

  • postcodesioR调用的API有请求频率限制,处理数千条邮编时建议分批次(比如每500条一批)执行,避免被限制访问。
  • 使用ukdepriv前确保你的R环境已安装devtools,且网络能正常访问GitHub。
  • 确保邮政编码格式规范(可提前去除多余空格,API会兼容大部分常见格式)。

内容的提问来源于stack exchange,提问作者Gabriella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:22:51