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

如何匹配行数不同的两个数据集?ID与行政区代码映射问题

问题分析

你的代码核心问题是用c()创建映射向量时,无法存储多元素值——比如E = c(5,6)会被自动截断为单个值,导致每个ID仅对应1个行政区,所以unnest后行数还是16,没法展开到21个行政区。

修正方案

改用列表/映射表存储ID到多行政区的对应关系,再通过匹配自动展开行:

library(dplyr)
library(tidyr)

# 1. 构建明确的ID-行政区映射表(每个ID对应多少行政区就写多少行)
id_district_map <- tibble(
  ID = c("A", "B", "C", "D", "E", "E", "F", "G", "H", "I", "I", "I",
         "J", "K", "L", "M", "N", "O", "O", "P", "P"),
  CODDISTRIT = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)
)

# 2. 关联原数据集与映射表,自动展开对应行
final_data <- PRUEBAsummary_NO2_2019_ID %>%
  left_join(id_district_map, by = "ID") %>%
  # 保留需要的列(可根据你的实际需求调整)
  select(CODDISTRIT, ID, sumhourly_exceedances, sumdaily_exceedances, count, mean_value)
代码说明
  • 用tibble构建映射表,直接明确每个ID对应的所有行政区,彻底避免向量截断问题。
  • left_join会自动将原数据中每个ID的行,重复对应到映射表中该ID的所有行政区,最终生成21行数据(每个行政区一行)。
  • 如果原数据中每个ID仅存在一行,最终结果将完全匹配你需要的21个行政区对应关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:43:12