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

如何在R中匹配两个数据矩阵的行并统计匹配数量及占比

解答

你对dput()的使用是正确的,输出的结构化数据可以直接在R中复现你的测试样本,非常便于问题排查。

单个m2文件的匹配统计

你可以直接用R基础函数实现需求,无需额外依赖第三方包,代码如下:

# 读取数据,若你的csv文件第一行就是数据无表头,必须加header = FALSE参数
m1 <- read.csv("names-file.csv", header = FALSE)
m2 <- read.csv("data-file.csv", header = FALSE)

# 提取两个数据框的名称列
names_m1 <- m1[,1]
names_m2 <- m2[,1]

# 计算匹配结果
matched_names <- intersect(names_m1, names_m2) # 匹配到的具体名称
match_count <- length(matched_names) # 匹配数量
# 若需输出匹配占比用下面这行
# match_ratio <- paste0(round(match_count/length(names_m1)*100, 1), "%")
# 若需输出缺失占比(和你示例输出的60%对应)用下面这行
missing_ratio <- paste0(round((length(names_m1)-match_count)/length(names_m1)*100, 1), "%")

# 按你要求的格式输出结果
cat(match_count, "\n\n", paste(matched_names, collapse = "\n"), "\n\n", missing_ratio, sep = "")

用你给出的示例数据运行上述代码,输出结果完全符合你的预期。

批量处理4000个矩阵统计缺失占比

如果需要批量处理所有m2对应的序列文件,可以用以下代码实现全局统计:

# 先读取固定的名称列表m1
m1 <- read.csv("names-file.csv", header = FALSE)
names_m1 <- m1[,1]
total_names <- length(names_m1)

# 初始化计数向量,统计每个名称在所有文件中的出现次数
appear_count <- rep(0, total_names)
names(appear_count) <- names_m1

# 获取所有待处理的m2序列文件路径,替换为你实际的文件存储目录
m2_file_list <- list.files(path = "你的m2文件存储文件夹路径", pattern = "\\.csv$", full.names = TRUE)
total_files <- length(m2_file_list)

# 循环处理每个文件
for (f in m2_file_list) {
  # 大文件推荐用data.table::fread读取,速度远快于read.csv,用法如下:
  # current_m2 <- data.table::fread(f, header = FALSE)
  current_m2 <- read.csv(f, header = FALSE)
  current_names <- current_m2[,1]
  hit_names <- intersect(names_m1, current_names)
  appear_count[hit_names] <- appear_count[hit_names] + 1
}

# 计算每个名称的缺失占比
missing_ratio <- (total_files - appear_count)/total_files * 100
# 计算所有44个名称的整体平均缺失占比
avg_missing_ratio <- mean(missing_ratio)

# 导出结果到csv文件
stat_result <- data.frame(
  名称 = names_m1,
  出现次数 = appear_count,
  缺失占比 = paste0(round(missing_ratio, 2), "%")
)
write.csv(stat_result, "名称缺失统计结果.csv", row.names = FALSE)

小提示:你的m2文件有50万列,属于大文件,安装data.table包后用fread读取可以大幅提升读取速度,避免等待时间过长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:36:03