R语言如何统计两列中均未出现的Contig_id的数量
解决方案
核心逻辑是通过集合运算快速求差集,不用逐一遍历判断,执行效率更高。
Python 实现
import pandas as pd # 1. 生成0到1193的所有目标contig集合 all_contig = set(f"Contig_{i}" for i in range(1194)) # 2. 提取Contig_A、Contig_B两列所有去重后的已出现contig exist_contig = set(pd.concat([df["Contig_A"], df["Contig_B"]]).unique()) # 3. 计算差集长度就是未出现的id总数 missing_num = len(all_contig - exist_contig) # 也可以直接获取所有未出现的id列表 missing_ids = list(all_contig - exist_contig)
你给出的示例场景下把range(1194)改成range(10),运行得到的结果就是4,和示例说明一致。
R 实现
# 1. 生成0到1193的所有目标contig all_contig <- paste0("Contig_", 0:1193) # 2. 提取两列所有去重后的已出现contig exist_contig <- unique(c(df$Contig_A, df$Contig_B)) # 3. 计算差集长度得到结果 missing_num <- length(setdiff(all_contig, exist_contig)) # 获取未出现的id列表 missing_ids <- setdiff(all_contig, exist_contig)
内容的提问来源于stack exchange,提问作者Abby
相关产品推荐
相关产品推荐

