--- title: "Getting started with eq5dsuite" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Getting started with eq5dsuite} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(eq5dsuite) ``` ## Introduction The `eq5dsuite` package provides standardised tools for calculating EQ-5D preference-based values and analysing EQ-5D data following the recommendations of Devlin et al. (2020). This vignette introduces the core workflow: loading the package, exploring available value sets, and calculating EQ-5D values from profile data. ## Installation Install the released version from CRAN: ```{r install-cran, eval = FALSE} install.packages("eq5dsuite") ``` Install the development version from GitHub: ```{r install-github, eval = FALSE} remotes::install_github("MathsInHealth/eq5dsuite-r") ``` ## Available value sets The package includes country-specific value sets for the EQ-5D-3L, EQ-5D-5L, and EQ-5D-Y-3L instruments. Use `eqvs_display()` to see all available sets: ```{r display-value-sets} # List all available EQ-5D-3L value sets eqvs_display(version = "3L") ``` ## Calculating EQ-5D values ### EQ-5D-3L The most common workflow uses a data frame with one column per EQ-5D dimension. The `dim.names` argument maps your column names to the five dimensions in the standard order (mobility, self-care, usual activities, pain/discomfort, anxiety/depression): ```{r eq5d3l-example} # Example data with EQ-5D-3L responses eq5d3l_data <- data.frame( id = 1:5, mo = c(1, 2, 1, 3, 2), sc = c(1, 1, 2, 2, 1), ua = c(1, 2, 1, 3, 2), pd = c(2, 2, 1, 3, 3), ad = c(1, 1, 2, 2, 1) ) # Calculate EQ-5D-3L values using the UK value set eq5d3l_data$value <- eq5d3l( eq5d3l_data, country = "UK", dim.names = c("mo", "sc", "ua", "pd", "ad") ) eq5d3l_data ``` ### EQ-5D-5L ```{r eq5d5l-example} eq5d5l_data <- data.frame( id = 1:5, mo = c(1, 2, 3, 1, 2), sc = c(1, 1, 2, 1, 3), ua = c(2, 1, 3, 1, 2), pd = c(2, 3, 2, 1, 4), ad = c(1, 2, 1, 3, 2) ) eq5d5l_data$value <- eq5d5l( eq5d5l_data, country = "IT", dim.names = c("mo", "sc", "ua", "pd", "ad") ) eq5d5l_data ``` ### EQ-5D-Y-3L ```{r eq5dy3l-example} eq5dy3l_data <- data.frame( id = 1:5, mo = c(1, 2, 1, 2, 3), sc = c(1, 1, 2, 1, 2), ua = c(2, 1, 1, 3, 2), pd = c(1, 2, 3, 2, 1), ad = c(2, 1, 2, 1, 3) ) eq5dy3l_data$value <- eq5dy3l( eq5dy3l_data, country = "SI", dim.names = c("mo", "sc", "ua", "pd", "ad") ) eq5dy3l_data ``` ## Custom value sets If a value set is not yet included in the package, you can add your own using `eqvs_add()`: ```{r custom-vs, eval = FALSE} # Create a custom value set data frame custom_vs <- data.frame( state = make_all_EQ_indexes(version = "3L"), MY_VS = runif(243) ) # Register it temporarily for this session eqvs_add( custom_vs, version = "3L", country = "My Country", countryCode = "MC", VSCode = "MC", description = "Custom value set for demonstration", saveOption = 1 ) # Use the custom value set eq5d3l(c(11111, 12321), country = "MC") ``` ## Keeping value sets up to date New EQ-5D value sets are published regularly. Use `update_value_sets()` to check for and install new value sets from the online repository: ```{r update-vs, eval = FALSE} update_value_sets() ``` ## Next steps - `vignette("analysing-eq5d-data")` — complete analytical workflow using NHS PROMs data - `vignette("crosswalk-methods")` — when and how to use crosswalk methods - `vignette("custom-value-sets")` — adding and managing custom value sets - `?eq5dsuite` — full package documentation