ADL
Activities of Daily Living Scale (ADL)
Description: Measuring the amount of routine self-care tasks that a respondent can complete without assistance.
Number of Items: 6
| Item | Question Wording | TILDA Variable |
|---|---|---|
| 1 | Have difficulties doing any of these activities on this card - Dressing, including putting on shoes and socks? | fl002_01 |
| 2 | Have difficulties doing any of these activities on this card - Walking across a room? | fl002_02 |
| 3 | Have difficulties doing any of these activities on this card - Bathing or showering? | fl002_03 |
| 4 | Have difficulties doing any of these activities on this card - Eating, such as cutting up your food | fl002_04 |
| 5 | Have difficulties doing any of these activities on this card - Getting in or out of bed? | fl002_05 |
| 6 | Have difficulties doing any of these activities on this card - Using the toilet, including getting up or down? | fl002_06 |
Scoring Method:
Each variable assigned a score of 1 if answered participant reports having difficulty.
Assessed as individual ADL difficulties, a binary “any ADL difficulty” score, or calculated as a cumulative score of difficulties.
Citation:
- Katz S. (1983). Assessing self-maintenance: activities of daily living, mobility, and instrumental activities of daily living. Journal of the American Geriatrics Society, 31(12), 721–727. https://doi.org/10.1111/j.1532-5415.1983.tb03391.x
Example TILDA Papers:
- Connolly, D., Garvey, J., & McKee, G. (2017). Factors associated with ADL/IADL disability in community dwelling older adults in the Irish longitudinal study on ageing (TILDA). Disability and rehabilitation, 39(8), 809–816. https://doi.org/10.3109/09638288.2016.1161848
Code
egen impairments = rowtotal(fl001_01-fl001_11)
egen adl = rowtotal(fl002_01-fl002_06)
replace adl = 0 if impairments == 0
egen iadl = rowtotal(fl025_01-fl025_06)
*Disability: 3 categories (disab3)
gen disab3 = 0 if iadl ~=. & adl ~=.
replace disab3 = 1 if iadl>0
replace disab3 = 2 if adl>0
label define disab3 0 "Not disabled" 1 "IADL disability only" 2 "Any ADL disability"
label values disab3 disab3
label variable disab3 "Disability"
notes disab3 : Disability in three groups, puts those with both IADL and ADL into the ADL group. Assumes an ordinality which probably does not hold.
tab disab3
*Disability: 4 categories (disab4)
gen disab4b = 0 if iadl ~=. & adl ~=.
replace disab4b = 1 if iadl>0
replace disab4b = disab4b + 2 if adl>0
label define disab4 0 "Not disabled" 1 "IADL disability only " 2 "ADL disability only " 3 "IADL and ADL disability"
label values disab4 disab4
label variable disab4 "Disability"
tab disab4
label variable impairments "Number of physical limitations (from fl001)"
notes impairments : uses list of impairments in fl001
label variable adl "Number of ADL impairments"
notes adl : From list in q fl002
label variable iadl "Number of IADL impairments"
notes iadl : From list in q fl025
rename iadl DISiadl
rename adl DISadl
rename impairments DISimpairments
rename disab3 DISdisab3
rename disab4 DISdisab4# Variable lists
impairment_vars <- sprintf("fl001_%02d", 1:11)
adl_vars <- sprintf("fl002_%02d", 1:6)
iadl_vars <- sprintf("fl025_%02d", 1:6)
# Stata egen rowtotal() treats missing component values as zero.
# rowSums(..., na.rm = TRUE) reproduces that behaviour, including
# returning 0 when all component items are missing.
data$impairments <- rowSums(data[impairment_vars], na.rm = TRUE)
data$adl <- rowSums(data[adl_vars], na.rm = TRUE)
# Retained to mirror the Stata source exactly.
data$adl[data$impairments == 0] <- 0
data$iadl <- rowSums(data[iadl_vars], na.rm = TRUE)
# Disability: 3 categories (disab3)
data$disab3 <- NA_real_
data$disab3[!is.na(data$iadl) & !is.na(data$adl)] <- 0
data$disab3[!is.na(data$iadl) & data$iadl > 0] <- 1
data$disab3[!is.na(data$adl) & data$adl > 0] <- 2
attr(data$disab3, "label") <- "Disability"
attr(data$disab3, "labels") <- c(
"Not disabled" = 0,
"IADL disability only" = 1,
"Any ADL disability" = 2
)
attr(data$disab3, "note") <- paste(
"Disability in three groups, puts those with both IADL and ADL",
"into the ADL group. Assumes an ordinality which probably does not hold."
)
print(table(data$disab3, useNA = "ifany"))
# Disability: 4 categories (disab4)
data$disab4 <- NA_real_
data$disab4[!is.na(data$iadl) & !is.na(data$adl)] <- 0
data$disab4[!is.na(data$iadl) & data$iadl > 0] <- 1
data$disab4[!is.na(data$adl) & data$adl > 0] <-
data$disab4[!is.na(data$adl) & data$adl > 0] + 2
attr(data$disab4, "label") <- "Disability"
attr(data$disab4, "labels") <- c(
"Not disabled" = 0,
"IADL disability only" = 1,
"ADL disability only" = 2,
"IADL and ADL disability" = 3
)
print(table(data$disab4, useNA = "ifany"))
# Variable labels and notes
attr(data$impairments, "label") <- "Number of physical limitations (from fl001)"
attr(data$impairments, "note") <- "uses list of impairments in fl001"
attr(data$adl, "label") <- "Number of ADL impairments"
attr(data$adl, "note") <- "From list in q fl002"
attr(data$iadl, "label") <- "Number of IADL impairments"
attr(data$iadl, "note") <- "From list in q fl025"
# Rename to TILDA scale variable names
names(data)[names(data) == "iadl"] <- "DISiadl"
names(data)[names(data) == "adl"] <- "DISadl"
names(data)[names(data) == "impairments"] <- "DISimpairments"
names(data)[names(data) == "disab3"] <- "DISdisab3"
names(data)[names(data) == "disab4"] <- "DISdisab4"COMPUTE impairments = SUM(fl001_01 TO fl001_11).
IF (MISSING(impairments)) impairments = 0.
COMPUTE adl = SUM(fl002_01 TO fl002_06).
IF (MISSING(adl)) adl = 0.
IF (impairments = 0) adl = 0.
COMPUTE iadl = SUM(fl025_01 TO fl025_06).
IF (MISSING(iadl)) iadl = 0.
* Disability: 3 categories (disab3).
COMPUTE disab3 = $SYSMIS.
IF (NOT MISSING(iadl) AND NOT MISSING(adl)) disab3 = 0.
IF (iadl > 0) disab3 = 1.
IF (adl > 0) disab3 = 2.
VALUE LABELS disab3
0 "Not disabled"
1 "IADL disability only"
2 "Any ADL disability".
VARIABLE LABELS disab3 "Disability".
FREQUENCIES VARIABLES=disab3.
* Disability: 4 categories (disab4).
COMPUTE disab4 = $SYSMIS.
IF (NOT MISSING(iadl) AND NOT MISSING(adl)) disab4 = 0.
IF (iadl > 0) disab4 = 1.
IF (adl > 0) disab4 = disab4 + 2.
VALUE LABELS disab4
0 "Not disabled"
1 "IADL disability only"
2 "ADL disability only"
3 "IADL and ADL disability".
VARIABLE LABELS disab4 "Disability".
FREQUENCIES VARIABLES=disab4.
* Variable labels.
VARIABLE LABELS impairments "Number of physical limitations (from fl001)".
VARIABLE LABELS adl "Number of ADL impairments".
VARIABLE LABELS iadl "Number of IADL impairments".
* Notes from the Stata source:
* impairments: uses list of impairments in fl001.
* adl: From list in q fl002.
* iadl: From list in q fl025.
* Rename to TILDA scale variable names.
RENAME VARIABLES
(iadl = DISiadl)
(adl = DISadl)
(impairments = DISimpairments)
(disab3 = DISdisab3)
(disab4 = DISdisab4).
EXECUTE.