以邮政编码命名(不是美国!)

Naming after zip codes (not US!)

提前,我希望我已经适当地展示了一个数据示例——我以前没有在这里发帖,我也是 R 的新手。我有一个大型数据集,我想根据大量邮政编码(1089 个不同)创建一个具有区域名称(5 个不同)的新列,如下所示。

id zip 
1 8000   
2 7700 
3 1050
4 5000  
5 6880 
6 8620 


id zip  region_name
1 8000   central
2 7700   north
3 1050   capital  
4 5000   south
5 6880   central 
6 8620   central

由于邮编较多,我将1089个邮编按照“北部”、“中部”、“南部”、“首都”和“首都”五个地区分别分配到五个lists()中“雪兰”。谁能帮我好code/solution?

谢谢!

我建议使用堆栈将您的邮政编码列表也设为 data.frame,然后 merge/left_join 表格

代码

zip_code_df <- stack(zip_code_list)
names(zip_code_df) <- c("zip", "region_name")

left_join(df, zip_code_df, by = "zip")

结果

   id  zip region_name
1:  1 8000     central
2:  2 7700       north
3:  3 1050     capital
4:  4 5000       south
5:  5 6880     central
6:  6 8620     central

数据

df <- structure(list(id = 1:6, zip = c(8000L, 7700L, 1050L, 5000L, 6880L, 8620L)), row.names = c(NA, -6L), class = c("data.frame"))

zip_code_list <- list(
  "north" = c(7700),
  "central" = c(8000, 6880, 8620),
  "capital" = c(1050),
  "south" = c(5000)
)