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

如何在R中对不同输入格式的英国邮政编码进行标准化格式化

R实现非标准化英国邮政编码批量格式化

处理思路

基于英国邮政编码的规则(第二部分固定为末尾3位字符),按三步处理:

  • 所有字符统一转为大写
  • 清除所有非字母、数字的无效字符(包括多余空格、点、横杠等)
  • 将字符串拆分为「前N位+末尾3位」两部分,中间插入单个空格

通用代码实现

基础R向量化实现(无需额外依赖包)

# 示例输入
postcodes <- c("IV41 8PW","IV408BU","kY11..4hJ","KY1.1UU","KY4    9RW","G32-7EJ")

# 格式化处理
standard_postcodes <- gsub("^(.*)(.{3})$", "\\1 \\2", 
                           gsub("[^A-Z0-9]", "", toupper(postcodes)))

# 输出验证
standard_postcodes

封装为可复用函数

format_uk_postcode <- function(x) {
  if (!is.character(x)) stop("输入参数必须为字符型向量")
  x_upper <- toupper(x)
  x_clean <- gsub("[^A-Z0-9]", "", x_upper)
  res <- gsub("^(.*)(.{3})$", "\\1 \\2", x_clean)
  return(res)
}

# 调用测试
format_uk_postcode(postcodes)

输出结果

运行代码后得到符合要求的标准格式:

c("IV41 8PW", "IV40 8BU", "KY11 4HJ", "KY1 1UU", "KY4 9RW", "G32 7EJ")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:24:04