#' Charlson Comorbidity Index
#'
#'
#' @param data data
#' @param years years
#' @param Year logical
#'
#' @return Charlson Comorbidity Index
#' @export
#'
attach_CCI <- function(data,years,
Year=FALSE){
diabetes=1
diabetes_retinopathy=2
Kidney_failure=2
Kidney_stones=2
heart_failure=1
stroke=1
liver_disease=2
arthritis=1
bladder_cancer=2
bone_cancer=2
brain_cancer=2
breast_cancer=2
cervical_cancer=2
colon_cancer=2
esophageal_cancer=2
gallbladder_cancer=2
kidney_cancer=2
Tracheal_carcinoma=2
leukemia=2
liver_cancer=2
lung_cancer=2
lymphoma=2
melanoma=2
oral_cancer=2
never_cancer=2
ovarian_cancer=2
pancreatic_cancer=2
prostate_cancer=2
rectal_cancer=2
skin_cancer=2
unknown_skin_cancer=2
soft_tissue_cancer=2
stomach_cancer=2
testicular_cancer=2
thyroid_cancer=2
uterine_cancer=2
other_cancer=2
years <- data_years(data,years)
diq <- nhs_tsv('diq',years=years,cat=FALSE)
kiq <- nhs_tsv('kiq','!~kiq_p',years=years,cat=FALSE)
mcq <- nhs_tsv('mcq',years=years,cat=FALSE)
spx <- nhs_tsv('spx',years=years,cat=FALSE)
d <- nhs_read(
diq,'diq080:diabetes_retinopathy',
kiq,
'kiq020,kiq022:Kidney_failure',
'kiq026:Kidney_stones',
mcq,
'mcq160b:heart_failure',
'mcq160f:stroke',
'mcq160l:liver_disease',
'mcq500:liver_disease.1',
'mcq160a:arthritis',
'mcq240a:bladder_cancer',
'mcq240c:bone_cancer',
'mcq240d:brain_cancer',
'mcq240e:breast_cancer',
'mcq240f:cervical_cancer',
'mcq240g:colon_cancer',
'mcq240h:esophageal_cancer',
'mcq240i:gallbladder_cancer',
'mcq240j:kidney_cancer',
'mcq240k:Tracheal_carcinoma',
'mcq240l:leukemia',
'mcq240m:liver_cancer',
'mcq240n:lung_cancer',
'mcq240o:lymphoma',
'mcq240p:melanoma',
'mcq240q:oral_cancer',
'mcq240r:never_cancer',
'mcq240s:ovarian_cancer',
'mcq240t:pancreatic_cancer',
'mcq240u:prostate_cancer',
'mcq240v:rectal_cancer',
'mcq240w:skin_cancer',
'mcq240x:unknown_skin_cancer',
'mcq240y:soft_tissue_cancer',
'mcq240z:stomach_cancer',
'mcq240aa:testicular_cancer',
'mcq240bb:thyroid_cancer',
'mcq240cc:uterine_cancer',
'mcq240dd:other_cancer',
spx, 'spq070d:stroke.1',
lower_cd = TRUE,years=years,cat=FALSE)
d[is.na(d)] <- 0
d <- to_NA(d)
d <- attach_DM(d)
colnames(d)[colnames(d)=='DM'] <- 'diabetes'
d$diabetes <- ifelse(grepl('dm',d$diabetes,TRUE),'yes','no')
if ('liver_disease.1' %in% colnames(d) &
'liver_disease' %in% colnames(d)){
d$liver_disease[is.na(d$liver_disease)] <- d$liver_disease.1[is.na(d$liver_disease)]
}
if ('stroke.1' %in% colnames(d) &
'stroke' %in% colnames(d)) {
d$stroke[d$stroke.1>0] <- 'yes'
}
d <- drop_col(d,'liver_disease.1','stroke.1')
disease <- c("diabetes","diabetes_retinopathy", "Kidney_failure",
"Kidney_stones", "heart_failure", "stroke",
"liver_disease",
"arthritis")
for (i in disease) {
if (i %in% colnames(d)){
eval(parse(text=sprintf('d[,i] <- ifelse(d[,i] %s c(1,"yes","1") ,%s,0)','%in%',i)))
}
}
cancer <- c('bladder_cancer','bone_cancer','brain_cancer','breast_cancer',
'cervical_cancer','colon_cancer','esophageal_cancer','gallbladder_cancer',
'kidney_cancer','Tracheal_carcinoma','leukemia','liver_cancer',
'lung_cancer','lymphoma','melanoma','oral_cancer','never_cancer','ovarian_cancer','pancreatic_cancer',
'prostate_cancer','rectal_cancer','skin_cancer','unknown_skin_cancer',
'soft_tissue_cancer','stomach_cancer','testicular_cancer','thyroid_cancer',
'uterine_cancer','other_cancer')
for (i in cancer) {
if (i %in% colnames(d)){
d[,i] <- as.numeric(do::Replace0(d[,i],' .*'))
eval(parse(text=sprintf('d[,i] <- ifelse(d[,i] >0,%s,0)',i)))
}
}
d$CCI <- rowSums(d[,-c(1,2)],na.rm = TRUE)
d <- d[,c("seqn","Year","CCI")]
attach_return_data(data,d,Year,'seqn')
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.