# Scale ID: 			CESD-20
# Scale Name: 		Center for Epidemiological Studies Depression Scale (20 item)
# TILDA Variables: 	MHcesd_capi; MHdep3
# Dataset:      		TILDA Waves 3
# Author:
# Institution:  		The Irish Longitudinal Study on Ageing (TILDA)
# 
# Description:
# Creates the CESD-20 score and a three category clinically relevant depressive symptoms score.
# 
# Version:      1.0
# Date:         2026-09-01
# Language:     R

# Assumption: the working data frame is called `data`.

pos_items <- c(
  "mh001","mh002","mh003","mh005","mh006","mh007","mh009","mh010",
  "mh011","mh013","mh014","mh015","mh017","mh018","mh019","mh020"
)
neg_items <- c("mh004","mh008","mh012","mh016")

data$cesd <- NA_real_
data$cesd[!is.na(data$in_capi) & data$in_capi == 1] <- 0

for (v in pos_items) {
  data$cesd <- data$cesd + (data[[v]] - 1)
  data$cesd[data[[v]] %in% c(98, 99)] <- NA_real_
}

for (v in neg_items) {
  data$cesd <- data$cesd + (4 - data[[v]])
  data$cesd[data[[v]] %in% c(98, 99)] <- NA_real_
}

data$MHcesd_capi <- data$cesd
attr(data$MHcesd_capi, "label") <- "CES-D From CAPI"
data$cesd <- NULL

data$MHdep3 <- NA_real_
data$MHdep3[!is.na(data$MHcesd_capi) &
            data$MHcesd_capi >= 0 & data$MHcesd_capi <= 7] <- 0
data$MHdep3[!is.na(data$MHcesd_capi) &
            data$MHcesd_capi >= 8 & data$MHcesd_capi <= 15] <- 1
data$MHdep3[!is.na(data$MHcesd_capi) &
            data$MHcesd_capi >= 16 & data$MHcesd_capi <= 100] <- 2

attr(data$MHdep3, "label") <- "Depressive symptoms"
attr(data$MHdep3, "labels") <- c("None/mild" = 0, "Moderate" = 1, "Severe" = 2)
attr(data$MHdep3, "note") <- paste(
  "Recoded CESD from CAPI.",
  "Code to generate: 0-7=0, 8-15=1, 16-70=2 (source note);",
  "the executable Stata recode uses 16-100=2."
)
