以邮政编码命名(不是美国!)
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)
)
提前,我希望我已经适当地展示了一个数据示例——我以前没有在这里发帖,我也是 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)
)