The ESS is a 8-item scale that is designed to measure daytime sleepiness. On a 4-point scale (0-3), respondents are asked to rate their usual chances of dozing off or falling asleep while engaged in eight different activities. A total sum score ranging from 0 to 24 may be calculated.

scoring_ess(data, items = 1:8, keep = TRUE, nvalid = 7, digits = NULL)



a data.frame containing the ESS items orderd from 1 to 8


A character vector with the ESS item names ordered from 1 to 8, or a numeric vector indicating the column numbers of the ESS 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 7.


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


The function returns 3 variables:

  • nvalid.ess: Number of valid values (MAX=8)

  • score.ess: ESS Score

  • cutoff.ess: ESS as categorical variable


  • Number of items: 8

  • Item range: 0 to 3

  • Reverse items: none

  • Score range: 0 to 24

  • Cut-off-values: none

  • Minimal clinically important difference: none

  • Treatment of missing values: If at least one item is missing, that ESS score must not be calculated.


Johns 1991 (

Link to questionnaire (


if (FALSE) { library(dplyr) items.ess <- paste0("ESS_", seq(1, 8, 1)) scoring_ess(mydata, items = items.ess) }