Scores the European Organization for Research and Treatment of Cancer (EORTC) QLQ-C30 Quality of Life Questionnaire (version 3.0).
qlq_c30(df, iprefix = NULL, items = NULL, keepNvalid = FALSE)
A data frame with all of the QLQ-C30 scores is returned. All scores are scaled to range from 0-100, even scores based on single items. Be aware that these single-item scales still have only 4 possible values, even though they are transformed to range from 0-100. The scale names and numbers of items are listed below.
Global health status/QoL
QL - Global health status/QoL (revised) (from 2 items)
Functional Scales (higher is better functioning)
PF - Physical functioning (from 5 items)
RF - Role functioning (from 2 items)
EF - Emotional functioning (from 4 items)
CF - Cognitive functioning (from 2 items)
SF - Social functioning (from 2 items)
Symptom Scales (higher is more symptoms, worse functioning)
FA - Fatigue (from 3 items)
NV - Nausea and Vomiting (from 2 items)
PA - Pain (from 2 items)
Single-Item Symptom Scores (higher is more symptoms, worse functioning)
DY - Dyspnoea
SL - Insomnia
AP - Appetite Loss
CO - Constipation
DI - Diarrhoea
FI - Financial Difficulties
QLQ-C30 Summary Score (higher is better functioning, fewer symptoms)
C30SUMMARY - QLQ-C30 Summary Score, composed by taking mean of all scores except for QL (Global health status/QoL) and FI (Financial Difficulties)
Optionally, the data frame can additionally have variables containing the
number of valid item responses on each scale for each respondent (if
keepNvalid = TRUE
, but this option might be removed in future package
updates).
A data frame containing responses to the 30 QLQ-C30 items, and possibly other variables.
Quoted item number prefix. Quote the letter(s) preceding the
item numbers as they are named in your data frame. For example, use
iprefix = "q"
if your items are named "q1"
, "q2"
, etc.
Use either this iprefix
argument or the items
argument (but
NOT BOTH) to tell the function which variables in df
are the QLQ-C30
items. See Details for more information.
A character vector with the QLQ-C30 item names, or a numeric
vector indicating the column numbers of the QLQ-C30 items in df
.
Use either this items
argument or the iprefix
argument (but
NOT BOTH) to tell the function which variables in df
are the QLQ-C30
items. If both items
and iprefix
are omitted, then
qlq_c30
will assume that df
contains ONLY the
QLQ-C30 items and no other variables. See Details for more information.
Logical, whether to return variables containing the
number of valid, non-missing items on each scale for each respondent should
be returned in the data frame with the scale scores. The default is
FALSE
. Set to TRUE
to return these variables, which will be
named "scalename_N"
(e.g., QL_N
). Most users should omit
this argument entirely. This argument might be removed from future
versions of the package, so please let me know if you think this argument
useful and would rather it remain a part of the function.
The qlq_c30
function will calculate the scale scores as long as at
least half of the items on the given scale have valid, non-missing item
responses. The qlq_c30
function will calculate the QLQ-C30 Summary
Score (C30SUMMARY
) for a respondent only if all 13 scales contributing to
that score are non-missing. Scores calculated in the presence of missing
items are pro-rated so that their theoretical minimum and maximum values
are identical to those from scores calculated from complete data.
This function returns a total of 16 different scores from the EORTC QLQ-C30 (Aaronson et al., 1993), including the new QLQ-C30 Summary Score (Giesinger et al, 2016). Scores are calculated according to the official scoring algorithms in the EORTC QLQ-C30 Scoring Manual (Fayers et al, 2001).
In addition to the name of your data frame containing the QLQ-C30 item
responses (df
), you need to tell the function how to find the
variables that correspond to the QLQ-C30 items in df
. You can do this
in 1 of 3 different ways:
The easiest way is to use the iprefix
argument. This
assumes that your items are named using a consistent prefix,
followed by the item number (e.g., 'q1', 'q2', 'q3', etc.). In this
case, you could use iprefix = 'q'
, and the function will know to
look for items named 'q1' to 'q30' in your data (df
). Note that
this method will NOT work if your items are numbered with
leading zeros for single digit item numbers (e.g., 'q01', 'q02', etc.).
The second way is to manually provide the item names or locations
using the items
argument. For example, if your first 10
variables in df
contain demographics, followed by the 30 QLQ-C30
items in order starting with the 11th variable, then you could
use items = 11:40
.
The last way only applies if your data frame (df
) contains
ONLY the 30 variables corresponding to the 30 QLQ-C30 items,
in order, with no other non-QLQ-C30 variables. In this case, you can
just use the df
argument and omit iprefix
and
items
.
You can use EITHER the iprefix
or items
argument, or NEITHER of
them (in the case of #3 above). But you cannot use both.
Aaronson NK, Ahmedzai S, Bergman B, Bullinger M, Cull A, Duez NJ, Filiberti A, Flechtner H, Fleishman SB, Haes JCJM de, Kaasa S, Klee M, Osoba D, Razavi D, Rofe PB, Schraub S, Sneeuw K, Sullivan M, Takeda F (1993). The European Organization for Research and Treatment of Cancer QLQ-C30: A Quality-of-Life Instrument for Use in International Clinical Trials in Oncology. JNCI J Natl Cancer Inst 85:365-376.
Fayers PM, Aaronson NK, Bjordal K, Groenvold M, Curran D, Bottomley A, on behalf of the EORTC Quality of Life Group. The EORTC QLQ-C30 Scoring Manual (3rd Edition). Published by: European Organisation for Research and Treatment of Cancer, Brussels 2001.
Giesinger JM, Kieffer JM, Fayers PM, Groenvold M, Petersen MA, Scott NW, Sprangers MAG, Velikova G, Aaronson NK (2016). Replication and validation of higher order models demonstrated that a summary score for the EORTC QLQ-C30 is robust. Journal of Clinical Epidemiology 69:79-88.
if (FALSE) {
dat <- PROscorerTools::makeFakeData(n = 10, nitems = 30, values = 1:4)
qlq_c30(dat, 'q')
}
Run the code above in your browser using DataLab