knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
options(rmarkdown.html_vignette.check_title = FALSE)
frag_path <- here::here("man", "fragments", "gds")
paths <- list.files(frag_path, "Rmd", full.names = TRUE)
names(paths) <- gsub("\\.Rmd", "", basename(paths))
paths <- as.list(paths)

Background


Rationale

The public health burden of a sedentary lifestyle has been recognized globally, but until recently, the prevalence and impact of the problem has not been studied in a uniform and systematic fashion. The questionnaire is the most feasible instrument for measuring physical activity in large groups or populations. However, many of the existing instruments are not comparable in the type of activities surveyed (i.e., leisure-time activities only) and format for data collection.

In response to the global demand for comparable and valid measures of physical activity within and between countries, IPAQ was developed for surveillance activities and to guide policy development related to health-enhancing physical activity across various life domains.

Scoring


Using the ipaq functions

Altering times

First important notice is on how your time-data is coded. The IPAQ has three important questions on the number of minutes spent doing something. This can be recorded in many ways, and some might have given participants options to answer in specific ways to reduce inaccurate data. In LCBC we have online solutions for data collection, and for time questions we have forced an HH:MM format to make sure respondents are consistent in the way they answer. In order to use these with the remaining ipaq calculations, a conversion to minutes is necessary. The ipaq_time_atler function will alter the columns from HH:MM to minutes. If you have any NA in the time data, you will get a warning about not being able to parse the data, this is expected and wanted behaviour, but you may proceed, the METs will not be calculated where data is missing.

library(questionnaires)
library(dplyr)

dat <- data.frame(
  time_1  = c("02:34", "09:33", "01:14"),
  time_2  = c("00:55", NA, "00:30")
)

dat

ipaq_time_alter(dat, cols = c(time_1, time_2))

MET category scores

To calculate the MET score for an individual MET category the ipaq_compute_met is what you need. This function takes a vector of minutes, days and the MET-factor you want to apply. Default MET-factor can be found in the ipaq_mets() function.

ipaq_mets()

The different MET categories have different questions in the IPAQ, and should be calculated separately before combined to the total score.

vig_data <- data.frame(
 ipaq_vig_mins = c(60, 20, 60, 25, 90, 20, 0, 75, 60, 30),
 ipaq_vig_days = c(1, 3, 2, 5, 6, 1, 1, 2, 2, 4)
)

vig_data

ipaq_compute_met(vig_data$ipaq_vig_mins, 
                 vig_data$ipaq_vig_days, 
                 met = 8.0)

The total MET score can be manually computed using the ipaq_compute_sum, where one supplies a vector for each of the three MET categories, containing the pre-calculates MET scores for the categories.

light = c(1300, 300)
moderate = c(200, 400)
vigurous = c(0, 1300)

ipaq_compute_sum(vigurous , moderate, light)

Finally, you can calculate everything in one go using the ipaq_compute function. This function has many arguments, as the minutes and days of each category (2x3) must be specified, and also the mets you want applied must be supplied. The easiest way to alter the default mets is by using the ipaq_mets function to alter them. The function takes an entire data frame with all columns of data necessary to compute the MET score.

data <- data.frame(
  ipaq_1a = c(NA, "No", "Yes", NA, NA, NA, NA, NA, NA, "Yes"), 
  ipaq_1b = c(0, NA, 3, 3, 0, 2, 4, 3, 0, 3), 
  ipaq_2 = c("00:00", "", "01:00", "01:00", "00:00", "03:30", "01:00", "00:25", "00:00", "00:45"), 
  ipaq_3a = c(NA, "Yes", "Yes", NA, NA, NA, NA, NA, NA, "No"), 
  ipaq_3b = c(1, 3, 1, 3, 1, 4, 0, 5, 4, NA), 
  ipaq_4 = c("00:30", "01:30", "01:00", "01:00", "01:00", "02:00", "00:00", "00:15", "03:00", ""), 
  ipaq_5a = c(NA, "Yes", "Yes", NA, NA, NA, NA, NA, NA, "Yes"), 
  ipaq_5b = c(7, 3, 7, 7, 3, 3, 0, 5, 7, 4), 
  ipaq_6 = c("01:00", "00:20", "01:00", "00:25", "01:30", "00:20", "00:00", "01:15",  "01:00", "00:30"), 
  ipaq_7 = c("05:00", "12:00", "05:00", "07:00", "00:18", "05:00", "00:00", "08:00", "04:00", "08:00"), 
  ipaq_8a = c(5, NA, NA, 4, 4, 6, 5, 4, 6, NA),
  ipaq_8b = c(5, NA, NA, 4, NA, 6, 5, 4, 6, NA), 
  ipaq_8c = c(5, NA, NA, 5, 3, 5, 5, 3, 6, NA)
)

data

data %>% 
  ipaq_time_alter() %>% 
  # Keeping only calculated values for show, you like want this to be TRUE (default)
  ipaq_compute(keep_all = FALSE)

References




LCBC-UiO/Questionnaires documentation built on July 18, 2023, 6:45 p.m.