The HADS is a fourteen item instrument with 7 items relate to anxiety and 7 relate to depression. Zigmond and Snaith created this outcome measure specifically to avoid reliance on aspects of these conditions that are also common somatic symptoms of illness, for example fatigue and insomnia or hypersomnia. This, it was hoped, would create a tool for the detection of anxiety and depression in people with physical health problems. (see Wikipedia)

  items = 1:14,
  keep = TRUE,
  nvalid = 6,
  digits = NULL,
  reverse = c(7, 10)



a data.frame containing the HADS items orderd from 1 to 14


A character vector with the HADS item names ordered from 1 to 14, or a numeric vector indicating the column numbers of the HADS items in data.


Logical, whether to keep the single items and whether to return variables containing the number of non-missing items on each scale for each respondent. The default is TRUE.


A numeric value indicating the number of non-missing items required for score calculations. The default is 6.


Integer of length one: value to round to. No rounding by default.


items to be scored reversely. These items can be specified either by name or by index. Default: 7, 10


The function returns 7 variables:

  • nvalid.hads.anx: Number of valid values of HADS Anxiety items (MAX=7)

  • nvalid.hads.dep: Number of valid values of HADS Depression items (MAX=7)

  • score.hads.anx: HADS Anxiety score

  • cutoff.hads.anx: HADS Anxiety, categorical

  • score.hads.dep: HADS Depression score

  • cutoff.hads.dep: HADS Depression, categorical

  • score.hads.glo: HADS Global score


  • Number of items: 14

  • Item range: 0 to 3

  • Reverse items: 7, 10

  • Score range: 0 - 21 for sub-scores; 0 - 42 for global score

  • Cut-off-values: \(\le\) 7 = "no case"; 8 to 10 = "suspicious case"; \(\ge\) 11 = "definite case" (for both sub-scores)

  • Treatment of missing values: “Both sub scores are calculated if no more than one item is missing. Missing values are replaced with the average score of the completed items.”


Zigmond, Snaith (1983) (

Snaith (2003) (


if (FALSE) { library(dplyr) items.hads <- paste0("hads_", seq(1, 14, 1)) scoring_hads(mydata, items = items.hads, reverse = c(7, 10)) }