如何在两个具有不同行数的数据集之间进行匹配?

How can I do a matching between two datasets with different amount of rows?

提问人:Nerea 提问时间:11/15/2023 更新时间:11/15/2023 访问量:25

问:

我有一个包含 16 个 ID 类别的数据集 (PRUEBAsummary_NO2_2019_ID)。我想将这 16 个类别与相应的地区代码 (21) 相匹配。我希望与ID对应的行在需要时重复,重要的是每个地区都有相应的信息。事情是这样的:ID A 有 1 区,ID B 有 2 区,C 有 3 区,D 有 4 区,E 有 5 区和 6 区,F 有 7 区,G 有 8 区,H 有 9 区,ID I 有 10、11 和 12 区;J 代表 13,K 代表 14,L 代表 15,M 代表 16,N 代表 17,O 代表 18 和 19,P 代表 20 和 21 区。我想保留PRUEBAsummary_NO2_2019_ID数据集中包含的所有信息。为此,除区代码外,某些行在所有方面都是相等的。


# Assuming you have a column "ID" in PRUEBAsummary_NO2_2019_ID
# Create a new column "District_Code" based on the mapping
PRUEBAsummary_NO2_2019_ID$District_Code <- NA

# Mapping based on the information you provided
id_to_district_mapping <- c(
  A = 1,
  B = 2,
  C = 3,
  D = 4,
  E = c(5, 6),
  F = 7,
  G = 8,
  H = 9,
  I = c(10, 11, 12),
  J = 13,
  K = 14,
  L = 15,
  M = 16,
  N = 17,
  O = c(18, 19),
  P = c(20, 21)
)

# Assign district codes based on the mapping
for (id in names(id_to_district_mapping)) {
  PRUEBAsummary_NO2_2019_ID$District_Code[PRUEBAsummary_NO2_2019_ID$ID == id] <- id_to_district_mapping[id]
}

# Duplicate rows based on the District_Code
PRUEBAsummary_NO2_2019_ID_duplicated <- PRUEBAsummary_NO2_2019_ID %>%
  unnest(cols = c(District_Code)) %>%
  mutate(CODDISTRIT = as.numeric(District_Code)) %>%
  dplyr::select(CODDISTRIT, ID, sumhourly_exceedances, sumdaily_exceedances, count, mean_value) %>%
  complete(CODDISTRIT, ID, fill = list(sumhourly_exceedances = 0, sumdaily_exceedances = 0, count = 0, mean_value = 0))

一直在做很多事情,类似于这个,但没有任何效果,因为我总是得到 16 行

R DataFrame 数据清理 分析

评论


答: 暂无答案