麻豆 周处除三害
调教 telegram 使用R言语对FAERS数据库中的数据进行清洗——④demo去重和病例删除
发布日期:2025-01-06 08:40 点击次数:121
上一篇仍是完成了对所需表格的并吞,这一篇咱们靠近的问题是病例的去重和删除。基本想路是通过demo表格对病例进行去重和删除;然后再索求去重和删除后的demo的primaryid荟萃其他表格,得回其余表格的去重和删除后的数据。Demo的去重旨趣不在述说,不错在数据评释和一些文件中找到,具体操作见措施。1、demo的去重#载入上一派并吞后的总DEMO数据#留意替换我方的旅途demo <-
read_csv("F:/DataMining/5FaersDataCombineByGroup/DemoConbined.csv")#最烦的即是取名字,不要纠结我去名字的狠恶#以caseid为分组要求,使用slice_max函数进行去重操作,得且归重后的数据demo_dedu_t
<- demo %>%#以caseid分组 group_by(caseid) %>% #选出每组fda_dt和primaryid最大的行# slice_max这一步的耗时最长,CPU8400,显卡1066,内存16G调教 telegram,简短解决了5个小时。 slice_max(tibble(fda_dt, primaryid))#去重数据输出csv,保存数据调教 telegram,这一步是为了督察后续万一出现失实调教 telegram,再从头跑一遍上头的措施。#留意替换成我方的旅途write_csv(demo_dedu_t,
"F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/Deduplication/demo_dedu_t.csv")#进程检测仍然存在caseid重迭行,table(duplicated(demo_dedu_t$caseid))#取caseid仍重迭的数据子集,把重迭caseid赋值向量。 duca <-
filter(demo_dedu_t, duplicated(demo_dedu_t$caseid)) %>%.$caseid#取出caseid仍然重迭的子集一齐数据duca_y <-
filter(demo_dedu_t, caseid %in% duca)#输出数据,备用write_csv(duca_y,
"F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/duca_y.csv")#取出caseid不重迭的数据子集。duca_n <-
setdiff(demo_dedu_t, duca_y)#输出数据write_csv(duca_n,
"F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/duca_n.csv")#因此,经检测仍然存在524行数据存在重迭caseid,仔细商议有关子集发现,caseid/primaryid/fda_dt商量的行,其余列也因填报过错/填报单元/信息更新等问题,存在不同,这么就导致这524行数据,需要再进行去重。#数据(524行)仍有重迭问题,因问题出现的列,过错类型等千奇百怪,且仅有524行,决定手工去重。#读取东说念主工去重后的数据#替换成我方的旅途duca_y_dedu
<- read_csv("F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/Deduplication/duca_y_dedu.csv")#手工取重后,和duca_n并吞,得回demo去重后的齐全数据caseid_dedu
<- union(duca_y_dedu, duca_n)#进程caseid再次去重后,检测到primaryid仍有重迭table(duplicated(caseid_dedu$primaryid))#取primaryid仍重迭的部分子集。#取重迭的primaryid,并赋值向量。dupr <-
filter(caseid_dedu, duplicated(caseid_dedu$primaryid)) %>%.$primaryid#取出primaryid仍然重迭的整个行dupr_y <-
filter(caseid_dedu, primaryid %in% dupr)#输出数据,备用#留意替换成我方的旅途write_csv(dupr_y,
"F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/dupr_y.csv")#经手工查对,均为caseid不同,但primaryid等剩余列商量,臆测为caseid填写过错,无法革命,均删除。好在数据未几,不影响分析。#得回demo最终去重数据。dede <-
setdiff(caseid_dedu, dupr_y)#输出demo最终去重数据#留意替换成我方的旅途write_csv(dede,
"F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/dede.csv")#清雅一下,去重操作共进行了三次#第一次:以caseid为分组依据,去fda_dt和primaryid最大的行;#第二次:进行检测,发现仍然存在caseid重迭的行,单独索求出来,进行东说念主工解决;#第三次:进程第二次去重后,检测priamryid,仍然存在重迭的行,臆测原因是caseid的填写过错导致,不成解决,数据量未几,一齐删除。2、病例的删除#通过并吞后的deleted,得回需要删除的病例caseidcade <-
read_csv("F:/DataMining/5FaersDataCombineByGroup/DeletedConbined.csv")
%>% .$X1 %>% unique()#病例删除操作。dede_cade_y
<- filter(dede, caseid %in% cade)dedede <-
setdiff(dede, dede_cade_y)#输出病例去重和删除后的最终数据write_csv(dedede,
"F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/Deleted/dedede.csv")
本站仅提供存储处事,整个执行均由用户发布,如发现存害或侵权执行,请点击举报。
伦理小说网