* ******************************************************************.
* Scale ID:           PIL.
* Scale Name:         Purpose in Life.
* TILDA Variables:    MHpurpose.
* Dataset:            TILDA Waves 4.
* Institution:        The Irish Longitudinal Study on Ageing (TILDA).
*
* Description:
* Generates total scoring for the Purpose in Life Scale.
*
* Version:            1.0.
* Original date:      2026-09-01.
* Language:           SPSS.
* ******************************************************************.


* Recode special missing values.
RECODE SCQPurpose1 TO SCQPurpose7
  (-99 = SYSMIS)
  (-812 = SYSMIS)
  (-823 = SYSMIS)
  (-834 = SYSMIS)
  (-845 = SYSMIS)
  (-856 = SYSMIS).


* Reverse-score negatively worded items.
COMPUTE SCQPurpose2_r = 7 - SCQPurpose2.
COMPUTE SCQPurpose4_r = 7 - SCQPurpose4.
COMPUTE SCQPurpose5_r = 7 - SCQPurpose5.
COMPUTE SCQPurpose6_r = 7 - SCQPurpose6.


* Calculate total score.
* SUM() mirrors Stata rowtotal() by summing available nonmissing items.
COMPUTE MHpurpose = SUM(
  SCQPurpose1,
  SCQPurpose2_r,
  SCQPurpose3,
  SCQPurpose4_r,
  SCQPurpose5_r,
  SCQPurpose6_r,
  SCQPurpose7
).


* Require all 7 original items to be answered.
COMPUTE Purpose_missing = NMISS(
  SCQPurpose1,
  SCQPurpose2,
  SCQPurpose3,
  SCQPurpose4,
  SCQPurpose5,
  SCQPurpose6,
  SCQPurpose7
).

IF (Purpose_missing > 0) MHpurpose = $SYSMIS.


* Labels.
VARIABLE LABELS MHpurpose
  "Purpose in Life Scale total score (7-42)".

* Notes:
* Higher scores represent a stronger sense of purpose and meaning in life.
* Items 2, 4, 5 and 6 are reverse scored.


* Checks.
DESCRIPTIVES VARIABLES=MHpurpose.
FREQUENCIES VARIABLES=MHpurpose /MISSING=INCLUDE.


* Drop temporary variables.
DELETE VARIABLES
  SCQPurpose2_r
  SCQPurpose4_r
  SCQPurpose5_r
  SCQPurpose6_r
  Purpose_missing.

EXECUTE.
