This vignette describes how EQ-5D descriptive system data can be
summarised and reported using eq5d. It covers the outputs
produced by descriptive_data() and
table_descriptive() and explains how these can be used to
report response distributions across EQ-5D dimensions.
The descriptive_data() function summarises EQ-5D
responses in a tidy format, with one row for each dimension, response
level and metric combination. This format is designed to work naturally
with standard R workflows and is used by the reporting functions
provided in the package.
suppressPackageStartupMessages(library(eq5d))
dat <- read.csv(
system.file("extdata", "eq5d3l_example.csv", package = "eq5d")
)
# Ungrouped example.
dat1 <- subset(dat, Group == "Group1")
dd <- descriptive_data(dat1, version = "3L", metric = "percent")
head(dd)
#> Dimension Level Value Metric
#> 1 MO 1 43 percent
#> 2 MO 2 57 percent
#> 3 MO 3 0 percent
#> 4 SC 1 48 percent
#> 5 SC 2 52 percent
#> 6 SC 3 0 percentThe metric argument controls whether descriptive
summaries are reported as counts or percentages. For example, the
following returns counts rather than percentages:
descriptive_data(dat1, version = "3L", metric = "count")
#> Dimension Level Value Metric
#> 1 MO 1 43 count
#> 2 MO 2 57 count
#> 3 MO 3 0 count
#> 4 SC 1 48 count
#> 5 SC 2 52 count
#> 6 SC 3 0 count
#> 7 UA 1 22 count
#> 8 UA 2 71 count
#> 9 UA 3 7 count
#> 10 PD 1 6 count
#> 11 PD 2 78 count
#> 12 PD 3 16 count
#> 13 AD 1 57 count
#> 14 AD 2 43 count
#> 15 AD 3 0 countDescriptive tables can be created using
table_descriptive(). This function reshapes the output from
descriptive_data() into a format commonly used for
reporting EQ-5D results.
Tables may contain percentages or counts, depending on the metric used when creating the descriptive data.
table_descriptive(dd, include_total = TRUE)
#> Level MO SC UA PD AD
#> 1 1 43 48 22 6 57
#> 2 2 57 52 71 78 43
#> 3 3 0 0 7 16 0
#> 4 Total 100 100 100 100 100In this table, rows represent EQ-5D response levels and columns represent dimensions. The values show the proportion of respondents reporting each level.
Response distributions are often compared across study groups, populations or time points.
When a grouping variable is supplied to
descriptive_data(), summaries are calculated separately for
each group. table_descriptive() then returns a list
containing one table per group.
dd_grp <- descriptive_data(dat, version = "3L", metric = "count", group = "Group")
table_descriptive(dd_grp)
#> $Group1
#> Level MO SC UA PD AD
#> 1 1 43 48 22 6 57
#> 2 2 57 52 71 78 43
#> 3 3 0 0 7 16 0
#> 4 Total 100 100 100 100 100
#>
#> $Group2
#> Level MO SC UA PD AD
#> 1 1 62 72 57 28 74
#> 2 2 38 28 40 66 19
#> 3 3 0 0 3 6 7
#> 4 Total 100 100 100 100 100This approach makes it straightforward to compare descriptive system distributions across groups using a consistent reporting format throughout an analysis.