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

将多对多关系的combined表规范化还原为两张目标表

解决方法

生成goal_2

goal_2需要存储唯一的混合物成分组合及其对应ID,步骤如下:

  • 从combined中提取所有唯一的element与conc_pct配对
  • 为每个唯一配对分配专属的MixtureID(示例用行号作为ID,也可采用UUID等其他唯一标识方式)

对应的R代码:

library(dplyr)

# 创建goal_2
goal_2 <- combined %>%
  distinct(element, conc_pct) %>%
  mutate(MixtureID = row_number())

补全完整的goal_1

你之前仅生成了goal_1的sampleID和location部分,还需关联对应的MixtureID:

  • 将combined与刚生成的goal_2通过element和conc_pct字段关联
  • 提取唯一的sampleID+location+MixtureID组合,得到规范化的goal_1

对应的R代码:

# 创建完整的goal_1
goal_1 <- combined %>%
  left_join(goal_2, by = c("element", "conc_pct")) %>%
  distinct(sampleID, location, MixtureID)

验证结果

可通过以下代码验证还原后的表是否与原combined一致:

# 重新连接两张表,移除MixtureID后对比原数据
recombined <- left_join(goal_1, goal_2, by = "MixtureID", relationship = "many-to-many") %>%
  select(-MixtureID)

# 忽略行顺序,检查内容是否匹配
all_equal(combined, recombined, ignore_row_order = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:12:15