麻豆 艾鲤
通过前边几篇动漫,照旧把所需数据筛选终结,现时需要进行的是终末的清洗责任,先从demo表格开动。
一、对demo中的occr_country进行清洗
#统计occr_country列出现的国度称呼和次数
#dedede是去重和删除后的demo表格,在④篇中不错看到
#不错输出到excel表中检讨,更欢畅
occo <- dedede %>%
group_by(occr_country) %>%
summarise(n = n()) %>%
arrange(desc(n))
#载入FDA提供的国度递次称呼文献GENC,该递次不错在FDA官网找到,也不错使用ISO的国度递次称呼
#GENC表格只需保留你需要的列
#抑遏替换我方的旅途
GENC <- read_xlsx("F:/DataMining/FAERS数据分析所需其他贵府/GENC_Standard_Index/国度递次称呼代码.xlsx")
#由于occr_country一直接纳递次化填写步地,是以平直使用left_join函数对occo进行递次化比对。
occo_GENC <- left_join(occo, GENC, by = c("occr_country" = "2-character Code"))
#输出GENC比对后的数据
#抑遏替换我方的旅途
write_csv(OCCO_GENC, "F:/DataMining/6FaersDataDeduplicationStandardizationDeletionFill/4Standardization/occo_GENC.csv")
#由于occr_country一直接纳递次化填写步地,数据中仅出现极个别案例无法匹配递次化称呼,不影响商榷效果,不再进行相应替换。
#换句话说occr_country列无需进行清洗
二、对demo中的reporter_country进行清洗
dededede <- dedede %>%
#该列存在象征$,创建删除$的新列
mutate(reporter_country_demoney = str_remove_all(.$reporter_country, "\\$")) %>%
#删除原reporter_country
select(-reporter_country)
#统计出现的国度和次数
reco <- dededede %>%
group_by(reporter_country_demoney) %>%
summarise(n = n()) %>%
arrange(desc(n))
#输出并检讨
#替换成我方的旅途
write_csv(reco, "D:/Data mining/FAERS/7FaersDataStandardization/demo递次化/2reporter_country递次化/reporter_country_n.csv")
#载入递次GENC
GENC <- read_xlsx("D:/Data mining/FAERS/FAERS数据分析所需其他贵府/GENC_Standard_Index/国度递次称呼代码.xlsx")
#使用left_join函数对reco进行比对。
reco_GENC <- left_join(reco, GENC, by = c("reporter_country_demoney" = "2-character Code"))
#输出GENC比对后的数据
write_csv(reco_GENC, "D: /Data mining/FAERS/7FaersDataStandardization/demo递次化/2reporter_country递次化/reco_GENC.csv")
#对GENC比对后的数据,使用ISO3166进行手工斡旋。
#凭证上头最终的比对效果,使用case_when函数对不斡旋的国度称呼,进行斡旋;
#数据量和替换量较大,我的内存不够,只可分红2步进行替换;
#也不错使用str_relace_all进行替换,不外要抑遏正则抒发式的书写,否则会出现你不念念看到的替换;
#需要替换的数目较多,若是使用case_when一个个去列举,终点破钞时辰,我是先在excel表中进行批量科罚,然后平直复制到R内部;是不是存在更合理简便的本领,有待大佬救我;
#我把空缺值/缺失值NA/无法匹配的值/EU(European Union)/ NA(NorthAmerica)等,沿途科罚为缺失值NA;
#NA(NorthAmerica)需要抑遏,.default = reporter_country_demoney平直传为缺失值,若是不念念让其成为缺失值,不错使用.default =as.character(reporter_country_demoney) ;
#以下是示范本领,具体替换骨子需要凭证上头的比对效果进行填写
reco_stan <- dededede %>%
mutate(reporter_country = case_when(
reporter_country_demoney == "MYANMAR" ~ "MM",
reporter_country_demoney == "MONGOLIA" ~ "MN",
……
.default = reporter_country_demoney
)) %>%
select(-reporter_country_demoney)
#输出reporter_country斡旋后的数据,以免后续出现错误,再重新跑一遍上头的本领
#替换成我方的旅途
write_csv(reco_stan, "reco_stan.csv")
三、对demo中的age_cod进行递次化
#通过上头肖似本领检讨age_cod出现的称呼,进行递次化科罚,不在赘述,平直科罚
agco_stan <- reco_stan %>%
mutate(age_cod_stan = case_when(
age_cod == "MIN" ~ NA,
age_cod == "85" ~ NA,
age_cod == "SEC" ~ NA,
.default = age_cod
)) %>%
select(-age_cod)
四、对age进行递次化
age_stan <- agco_stan %>%
mutate(age_sta = case_when(
#age_cod为NA,则age为NA,因为无单元,数字无兴趣。
is.na(age_cod_stan) ~ NA,
#沿途换算成年
age_cod_stan == "DEC" ~ age*10,
age_cod_stan == "MON" ~ age/12,
age_cod_stan == "WK" ~ age/52,
age_cod_stan == "DY" ~ age/365,
age_cod_stan == "HR" ~ age/8760,
.default = age
)) %>%
select(-age_cod_stan, -age) %>%
#age罕见值较多,举例负值,0,0~1等。把罕见值斡旋为某一个数字,更利于邻接和统计。
mutate(age_year = case_when(
#统共负值均设为-1
age_sta < 0 ~ -1,
#0仍为0
age_sta == 0 ~ 0,
#0~1值均设为0.5
age_sta > 0 & age_sta < 1 ~ 0.5,
#其余四舍五入,保留2位少许。
.default = round(age_sta, 2)
)) %>%
select(-age_sta)
五、age_grp终点准,无需递次化科罚
六、sex递次化
#使用上头提到过的本领检讨sex中出现的项,进行递次化
sex_stan <- age_stan %>%
mutate(gender = case_when(
短篇伦理小说sex == "YR" ~ NA,
sex == "T" ~ NA,
sex == "P" ~ NA,
sex == "I" ~ NA,
sex == "NS" ~ "UNK",
.default = sex
)) %>%
select(-sex) %>%
rename(sex = gender)
七、wt_cod递次化
#使用上头提到过的本领检讨wt_cod中出现的项,进行递次化
wtcd_stan <- sex_stan %>%
mutate(wt_cod_stan = case_when(
wt_cod == "YEARS" ~ NA,
wt_cod == "KGS" ~ NA,
wt_cod == "L" ~ NA,
wt_cod == "Y" ~ NA,
wt_cod == "YR" ~ NA,
wt_cod == "LG" ~ NA,
wt_cod == "IB" ~ NA,
wt_cod == "L;" ~ NA,
wt_cod == "M" ~ NA,
wt_cod == "MG" ~ NA,
wt_cod == "UNK" ~ NA,
wt_cod == "YEAR" ~ NA,
.default = wt_cod
)) %>%
select(-wt_cod)
八、wt递次化
wt_stan <- wtcd_stan %>%
mutate(wt_kg = case_when(
#无单元,数字无兴趣,是以wt_cod为NA时,wt也应该为NA。
is.na(wt_cod_stan) ~ NA,
#沿途换算成KG,并保留2位少许。
wt_cod_stan == "LBS" ~ round(wt*0.45359237, 2),
wt_cod_stan == "GMS" ~ round(wt/1000, 2),
.default = round(wt, 2)
)) %>%
select(-wt_cod_stan, -wt)
九、occp_cod递次化
#使用上头提到过的本领检讨occp_cod中出现的项,进行递次化
occo_stan <- wt_stan %>%
mutate(occp_code = case_when(
occp_cod == "HP" ~ "PH",
occp_cod == "RN" ~ NA,
occp_cod == "SALES" ~ NA,
occp_cod == "20120210" ~ NA,
.default = occp_cod
)) %>%
select(-occp_cod) %>%
rename(occp_cod = occp_code)
#occo_stan等于最终效果。
#event_dt和fda_dt无需改革。
#输出最终demo递次化清洗效果。
write_csv(occo_stan动漫, "demo_stan.csv")
本站仅提供存储做事,统共骨子均由用户发布,如发现存害或侵权骨子,请点击举报。