下检测单前,过滤重复数据

需求:

 1)与以前存在的样本名称相同的,筛选出来,这是重复样本,做减法,不后续实验

 2) 重复样本中以前检测不合格的,加上,做后续实验。

 

准备工作:

1.unique的已存在样本列表 

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <strong>first_four_Sample<-read.csv("./first_four_Sample.csv") #如果有first_five文件,直接校验duplicatd就行</strong>
    fifth<-read.csv("./five_uniq_第五批去重去异常.csv")
    View(first_four_Sample)
    View(fifth)
    fifth$客户样本名称
     
    fifth$invSampleName<-fifth$客户样本名称 # 统一变量名,后续好对列操作
    fifth$invSampleName
     
    first_five<-c(first_four_Sample$invSampleName,fifth$invSampleName) #合并向量
    first_five
     
    <strong>first_five[duplicated(first_five)] # 保障uniq后,继续。
    summary(first_five) #看有多少观测行
    </strong>

      

2. 本次入库待实验的样本

  

1
2
3
4
5
sixth<-read.csv("./sixth_2088_Sample.csv")<br>View(sixth)
sixth$invSampleName
first_six<-c(first_five,sixth$invSampleName)
summary(first_six)
first_six[duplicated(first_six)] #这里可以sixth_repeated<-first_six[duplicated(first_six)]。如果有dup则继续。为空的话直接全下检测单就行了

 

3. 之前检测不合格的样本  

  • 1
    2
    3
    4
    5
    6
    7
    8
    unqualified143<-read.csv("../143unqualified_1217.csv")
    View(unqualified143)
    intersect(unqualified143$客户样本名称,first_six[duplicated(first_six)]) #本次样本中需要弥补之前不合格的样本sixth_nonrepeate<-setdiff(sixth$invSampleName,first_six[duplicated(first_six)]) #本次入库的非重复样本
    summary(sixth_nonrepeate)<br>
    sixth_need<-c(sixth_nonrepeate,supple_unqalified) #需要后续实验的所有样本
    summary(sixth_need)
    sample_sixth<-data.frame(invSampleName=sixth_need)
    View(sample_sixth) #构建一个数据框,方便和后边数据框拼接inner_join

4. 拼接样本信息表及入库单编码。

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sixth_code<-read.csv("./第六批入库单编码.csv") #入库单编码
    View(sixth_code)
    sixth_sampleinfo<-read.csv("./入库第六次_2088样本.csv") #样本信息单
    View(sixth_sampleinfo)
     
    sixth_code$invSampleName
    sampleinfo_code<-dplyr::inner_join(sixth_sampleinfo,sixth_code,by="invSampleName") #拼接两个数据框
    View(sampleinfo_code)
    glimpse(sampleinfo_code)
     
    sampleinfor_code_nonextended<-sampleinfo_code %>% select(!starts_with("extended")) #extend太多列了,不需要
    glimpse(sampleinfor_code_nonextended)

5. 生成需要的样本信息表

  • 1
    2
    3
    4
    5
    6
    test6_need<-dplyr::inner_join(sampleinfor_code_nonextended,sample_sixth,by="invSampleName") #需要后续实验的样本信息表,注意sample_six在后,不然新增的前面质检不合格样本不与之前板号连续
    View(test6_need)
    write_excel_csv(test6_need,"./test6_need.csv")
     
    repeat6<-first_six[duplicated(first_six)] #重复样本也保留
    write.csv(repeat6,"./repeat_6th.csv")

 

新知识

1
first_six[duplicated(first_six)] 取出向量的重复观测<br><br>数据框的话,如:<br>> test[!duplicated(test$x),]  #与前面观测值 重复的行<br>> test[!duplicated(test$x),]  #唯一观测,重复项取第一次出现的行。

intersect(x,y) 两个向量取交集

union(x,y) 取并集

setdiff(x,y) 取x-y 的部分集。

 

posted on   BioinformaticsMaster  阅读(41)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示