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

使用zipcodeR提取blob类型area_code_list生成区号-邮编对照表

解决zipcodeR包中area_code_list(raw/blob类型)的提取与格式转换问题

问题分析

zipcodeR包返回的area_code_list列存储为raw/blob类型,本质是序列化后的数组数据(通常为JSON格式),需要先转换为可读的字符格式,再解析为列表,最后拆分展开成每行一个邮编-区号的结构。

解决方案代码

library(zipcodeR)
library(dplyr)
library(tidyr)
library(jsonlite)

# 获取目标邮编数据并处理area_code_list
search_state("CA") %>% 
  filter(zipcode %in% c("90201", "90210")) %>% 
  select(zipcode, area_code_list) %>%
  # 将raw字节转换为JSON字符串并解析为数值/字符向量
  mutate(area_code_list = purrr::map(area_code_list, ~ rawToChar(.x) %>% jsonlite::fromJSON())) %>%
  # 将多元素列表拆分为单独行
  tidyr::unnest(area_code_list)

代码说明

  1. raw转字符与解析:rawToChar()将底层的raw字节转换为可读的JSON字符串,再通过fromJSON()解析为区号的向量(比如c(310,424));使用purrr::map()对每行的area_code_list批量处理。
  2. 拆分展开:tidyr::unnest()会把每个邮编对应的多个区号拆分成独立的行,最终得到你需要的"邮编-区号"一一对应的格式。

输出效果

运行后将得到与预期一致的结果:

# # A tibble: 3 × 2
# zipcode area_code_list
# <chr>           <int>
# 1 90201             323
# 2 90210             310
# 3 90210             424

内容的提问来源于stack exchange,提问作者Chris A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:18