# Scale ID: 			UCLA
# Scale Name: 		UCLA Loneliness Scale
# TILDA Variables:    MHucla_loneliness
# Dataset:      		TILDA Wave 1-6
# Author:
# Institution:  		The Irish Longitudinal Study on Ageing (TILDA)
# 
# Description:
# Generates scoring for the UCLA Loneliness Scale.
# 
# Version:      1.0
# Date:         2026-09-01
# Language:     R
#
# Assumption: the working data frame is called `data`.

# Recode source error/non-response values to missing.
ucla_items <- paste0("SCQLonelns", 1:5)
for (v in ucla_items) {
  data[[v]][data[[v]] %in% c(-99, -812, -823)] <- NA_real_
}

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

data$ucla_loneliness <- data$ucla_loneliness + 3 - data$SCQLonelns1
data$ucla_loneliness <- data$ucla_loneliness + 3 - data$SCQLonelns2
data$ucla_loneliness <- data$ucla_loneliness + 3 - data$SCQLonelns3
data$ucla_loneliness <- data$ucla_loneliness + 3 - data$SCQLonelns5
data$ucla_loneliness <- data$ucla_loneliness + data$SCQLonelns4 - 1

for (v in ucla_items) {
  bad <- !is.na(data[[v]]) & abs(data[[v]]) > 3
  data$ucla_loneliness[bad] <- NA_real_
}

attr(data$ucla_loneliness, "label") <- "UCLA loneliness scale"
attr(data$ucla_loneliness, "note") <-
  "UCLA loneliness scale from Self-completion questionnaire"

names(data)[names(data) == "ucla_loneliness"] <- "MHucla_loneliness"
