# Scale ID: 			Everyday-Ageism
# Scale Name: 		Everyday Ageism Scale
# TILDA Variables: 	AgeismExposure; AgeismInterpersonal; AgeismInternalised; AgeismTotal
# Dataset:      		TILDA Waves 3,4,5,6
# Author:       		Brendan O'Maoileidgh
# Institution:  		The Irish Longitudinal Study on Ageing (TILDA)
# 
# Description:
# Generates total and subscale scoring for the Everyday Ageism Scale.
# 
# Version:      1.0
# Date:         2026-09-01
# Language:     R
#
# Assumption: the working data frame is called `data`.

ageism_items <- paste0("Ageism", 1:10)
special_missing <- c(-99, -812, -823, -834, -845, -856, -867, -1)

for (v in ageism_items) {
  data[[v]][data[[v]] %in% special_missing] <- NA_real_
  data[[paste0(v, "_rev")]] <- 4 - data[[v]]
}

rev <- paste0(ageism_items, "_rev")
for (v in rev) print(table(data[[v]], useNA = "ifany"))

# Ordinary addition matches the Stata source: any missing contributing item
# makes the corresponding subscale/total missing.
data$AgeismExposure <- data$Ageism1_rev + data$Ageism2_rev
data$AgeismInterpersonal <-
  data$Ageism3_rev + data$Ageism4_rev + data$Ageism5_rev +
  data$Ageism6_rev + data$Ageism7_rev
data$AgeismInternalised <-
  data$Ageism8_rev + data$Ageism9_rev + data$Ageism10_rev

data$AgeismTotal <-
  data$AgeismExposure + data$AgeismInterpersonal + data$AgeismInternalised

attr(data$AgeismExposure, "label") <-
  "Everyday-Ageism scale: Exposure to ageist messaging"
attr(data$AgeismInterpersonal, "label") <-
  "Everyday-Ageism scale: Ageism in interpersonal interactions"
attr(data$AgeismInternalised, "label") <-
  "Everyday-Ageism scale: Internalised Ageism"
attr(data$AgeismTotal, "label") <-
  "Total scores of Everyday-Ageism Scale"

summary(data[c(
  "AgeismExposure", "AgeismInternalised", "AgeismInterpersonal", "AgeismTotal"
)])
