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

如何用R语言实现数据集匹配转换(替代Excel手动操作)

R语言实现数据转换解决方案

可以通过dplyr包完成这个自动化处理,步骤如下:

1. 构造示例数据集

先把你提供的两个数据集转换成R的数据框:

# 数据集1
df1 <- data.frame(
  Col1 = c("a", "a", "a", "b", "b", "b", "a", "a", "b", "b"),
  Col2 = c("1", "2", "3", "4", "5", "6", "77", "88", "99", "00"),
  stringsAsFactors = FALSE
)

# 数据集2
df2 <- data.frame(
  Col1 = c("a", "a", "a", "b", "b", "b"),
  Col2 = c("1", "2", "3", "4", "5", "6"),
  Col3 = c("X", "X", "Y", "Y", "Z", "Z"),
  stringsAsFactors = FALSE
)

2. 拆分处理并合并结果

我们需要把目标数据集拆成两部分处理后再合并:

  • 第一部分:提取数据集2中Col1和Col3的唯一组合,重命名Col3为NewCol2
  • 第二部分:筛选数据集1中未出现在数据集2Col2里的行,将原Col2重命名为NewCol2

使用dplyr的代码如下:

library(dplyr)

# 处理第一部分:去重提取Col1-Col3组合
part1 <- df2 %>%
  select(Col1, NewCol2 = Col3) %>%
  distinct()

# 处理第二部分:筛选未匹配的行
part2 <- df1 %>%
  filter(!Col2 %in% df2$Col2) %>%
  select(Col1, NewCol2 = Col2)

# 合并两部分得到最终结果
target_df <- bind_rows(part1, part2)

3. 验证结果

运行上述代码后,target_df就是你需要的目标数据集:

print(target_df)
#   Col1 NewCol2
# 1    a       X
# 2    a       Y
# 3    b       Y
# 4    b       Z
# 5    a      77
# 6    a      88
# 7    b      99
# 8    b      00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:17:40