In below code, for example, if liver diseases' code exists in following columns it should be 1. Even though sometimes it is 1, sometimes it is 0 but it should be 1. For example: CASITE other columns has_livercancer C220 ......... 0
has_livercancer should be 1. Additionaly, this is not the only case. It happens all columns that I create in below.
I cannot provide any data due to privacy issues.
test_ipd <- test_ipd %>%
group_by(ID_NO) %>%
mutate(
ICD9_CODE = first(ICD9_CODE),
ICD10_CODE = first(ICD10_CODE),
MDIAG_CODE = first(MDIAG_CODE),
CONFIRM_MDIAG = first(CONFIRM_MDIAG),
SDIAG_CODE = first(SDIAG_CODE),
CASITE = first(CASITE),
has_diabetes_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE,"^250|^E1[0-4]"),
str_detect(ICD9_CODE, "^250|^E1[0-4]"),
str_detect(ICD10_CODE, "^250|^E1[0-4]"),
str_detect(MDIAG_CODE,"^250|^E1[0-4]"),
str_detect(CONFIRM_MDIAG, "^250|^E1[0-4]")), 1, 0),
has_livercancer_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE,"^155|C220|C22.0|C22.1|C221|C222|C22.2|C22.3|C223|C224|C22.4|C22.7|C22.9|155.0"),
str_detect(ICD9_CODE, "^155|C220|C22.0|C22.1|C221|C222|C22.2|C22.3|C223|C224|C22.4|C22.7|C22.9|155.0"),
str_detect(ICD10_CODE,"^155|C220|C22.0|C22.1|C221|C222|C22.2|C22.3|C223|C224|C22.4|C22.7|C22.9|155.0"),
str_detect(MDIAG_CODE,"^155|C220|C22.0|C22.1|C221|C222|C22.2|C22.3|C223|C224|C22.4|C22.7|C22.9|155.0"),
str_detect(CONFIRM_MDIAG, "^155|C220|C22.0|C22.1|C221|C222|C22.2|C22.3|C223|C224|C22.4|C22.7|C22.9|155.0"),
str_detect(CASITE,"155|C220|C22.0|C22.1|C221|C222|C22.2|C22.3|C223|C224|C22.4|C22.7|C22.9|155.0")),
1,
0
),
has_chronic_hepatitis_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE,"^070\\.[23]|^B18\\.[01-2]"),
str_detect(ICD9_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(ICD10_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(MDIAG_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(CONFIRM_MDIAG, "^070\\.[23]|^B18\\.[01-2]")),
1,
0
),
has_alcohol_liver_disease_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(ICD9_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(ICD10_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(MDIAG_CODE, "^070\\.[23]|^B18\\.[01-2]"),
str_detect(CONFIRM_MDIAG, "^571\\.0|^K70")),
1,
0
),
has_nafld_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE,"^571\\.8|^K76\\.0"),
str_detect(ICD9_CODE, "^571\\.8|^K76\\.0"),
str_detect(ICD10_CODE, "^571\\.8|^K76\\.0"),
str_detect(MDIAG_CODE, "^571\\.8|^K76\\.0"),
str_detect(CONFIRM_MDIAG, "^571\\.8|^K76\\.0")),
1,
0
),
has_obesity_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE, "^278\\.0|^E66"),
str_detect(ICD9_CODE, "^278\\.0|^E66"),
str_detect(ICD10_CODE, "^278\\.0|^E66"),
str_detect(MDIAG_CODE, "^278\\.0|^E66"),
str_detect(CONFIRM_MDIAG, "^278\\.0|^E66")),
1,
0
),
has_cirrhosis_byicd = ifelse(
coalesce(str_detect(SDIAG_CODE,"^571\\.5|K74|K74.0|K74.1|K74.2|K74.3|K74.4|K74.5|K74.6"),
str_detect(ICD9_CODE,"^571\\.5|K74|K74.0|K74.1|K74.2|K74.3|K74.4|K74.5|K74.6"),
str_detect(ICD10_CODE,"^571\\.5|K74|K74.0|K74.1|K74.2|K74.3|K74.4|K74.5|K74.6"),
str_detect(MDIAG_CODE,"^571\\.5|K74|K74.0|K74.1|K74.2|K74.3|K74.4|K74.5|K74.6"),
str_detect(CONFIRM_MDIAG, "^571\\.5|K74|K74.0|K74.1|K74.2|K74.3|K74.4|K74.5|K74.6")),
1,
0
)
)
I want consistency. If the patient's code contains that particular code, it should have that disease.