Constructs a CMA (continuous multiple-interval measures of medication availability/gaps) object for polypharmacy.
CMA_polypharmacy(
data = data,
medication.groups = medication.class.colname,
CMA.to.apply = NA,
aggregate.first = TRUE,
aggregation.method = NA,
aggregation.method.arguments = NA,
thresholds = NA,
ID.colname = NA,
event.date.colname = NA,
event.duration.colname = NA,
event.daily.dose.colname = NA,
medication.class.colname = NA,
carry.only.for.same.medication = NA,
consider.dosage.change = NA,
followup.window.start = 0,
followup.window.start.unit = c("days", "weeks", "months", "years")[1],
followup.window.duration = 365 * 2,
followup.window.duration.unit = c("days", "weeks", "months", "years")[1],
observation.window.start = 0,
observation.window.start.unit = c("days", "weeks", "months", "years")[1],
observation.window.duration = 365 * 2,
observation.window.duration.unit = c("days", "weeks", "months", "years")[1],
date.format = "%m/%d/%Y",
summary = "CMA for polypharmacy",
force.NA.CMA.for.failed.patients = TRUE,
parallel.backend = c("none", "multicore", "snow", "snow(SOCK)", "snow(MPI)",
"snow(NWS)")[1],
parallel.threads = "auto",
suppress.warnings = FALSE,
...
)A data.frame containing the events (prescribing or
dispensing) used to compute the CMA. Must contain, at a minimum, the patient
unique ID, the event date and duration, medication type, and might also contain the daily
dosage (the actual column names are defined in the
following four parameters).
A string with the name of the column containing the medication
groups, or a *list of vectors* with medication class names (from medication.class.colname)
belonging to the same treatment groupf multiple medication classes should belong to the same
treatment group, they can be differentiated here (important to investigate treatment switches)
A string giving the name of the CMA function (1 to 9) that will be computed for each treatment group.
Logical, if TRUE, aggregate across treatment groups before
summarizing over time during OW.
A string giving the name of the function to
aggregate CMA values of medication group, or NA to return only raw CMA estimates
per medication group. Accepts summary functions such as "mean", "sd", "var", "min", "max",
and "median". Custom functions are possible as long as they take a numeric vector as input
and return a single numeric value.
optional, A named list of additional arguments to the
function given in aggregation method, e.g. na.rm = TRUE.
optional, a number to apply as threshold between aggregation and summarizing.
A string, the name of the column in
data containing the medication type. Defaults to
medication.class.colname.
A string, the name of the column in
data containing the start date of the event (in the format given in
the date.format parameter); must be present.
A string, the name of the column in
data containing the event duration (in days); must be present.
A string, the name of the column in
data containing the prescribed daily dose, or NA if not defined.
A string, the name of the column in
data containing the medication type, or NA if not defined.
Logical, if TRUE, the
carry-over applies only across medication of the same type; valid only for
CMAs 5 to 9, in which case it is coupled (i.e., the same value is used for
computing the treatment episodes and the CMA on each treatment episode).
Logical, if TRUE, the carry-over
is adjusted to also reflect changes in dosage; valid only for CMAs 5 to 9, in
which case it is coupled (i.e., the same value is used for computing the
treatment episodes and the CMA on each treatment episode).
If a Date object, it represents
the actual start date of the follow-up window; if a string it is the
name of the column in data containing the start date of the follow-up
window either as the numbers of followup.window.start.unit units after
the first event (the column must be of type numeric) or as actual
dates (in which case the column must be of type Date); if a
number it is the number of time units defined in the
followup.window.start.unit parameter after the begin of the
participant's first event; or NA if not defined.
can be either "days",
"weeks", "months" or "years", and represents the time
units that followup.window.start refers to (when a number), or
NA if not defined.
either a number representing the
duration of the follow-up window in the time units given in
followup.window.duration.unit, or a string giving the column
containing these numbers. Should represent a period for which relevant
medication events are recorded accurately (e.g. not extend after end of
relevant treatment, loss-to-follow-up or change to a health care provider
not covered by the database).
can be either "days",
"weeks", "months" or "years", and represents the time
units that followup.window.duration refers to, or NA if not
defined.
the definition of the observation window (see the follow-up window parameters above for details). Can be defined separately for each patient and treatment group.
A string giving the format of the dates used in the
data and the other parameters; see the format parameters of the
as.Date function for details (NB, this concerns only the
dates given as strings and not as Date objects).
Metadata as a string, briefly describing this CMA.
Logical describing how the
patients for which the CMA estimation fails are treated: if TRUE
they are returned with an NA CMA estimate, while for
FALSE they are omitted.
Can be "none" (the default) for single-threaded
execution, "multicore" (using mclapply in package parallel)
for multicore processing (NB. not currently implemented on MS Windows and
automatically falls back on "snow" on this platform), or "snow",
"snow(SOCK)" (equivalent to "snow"), "snow(MPI)" or "snow(NWS)" specifying
various types of SNOW clusters (can be on the local machine or more complex
setups -- please see the documentation of package snow for details;
the last two require packages Rmpi and nws, respectively, not
automatically installed with AdhereR).
Can be "auto" (for parallel.backend ==
"multicore", defaults to the number of cores in the system as given by
options("cores"), while for parallel.backend == "snow",
defaults to 2), a strictly positive integer specifying the number of parallel
threads, or a more complex specification of the SNOW cluster nodes for
parallel.backend == "snow" (see the documentation of package
snow for details).
Logical, if TRUE don't show any
warnings.
other possible parameters
An S3 object of class CMA_polypharmacy with the
following fields:
data The actual event data, as given by the data
parameter.
ID.colname the name of the column in data containing the
unique patient ID, as given by the ID.colname parameter.
event.date.colname the name of the column in data
containing the start date of the event (in the format given in the
date.format parameter), as given by the event.date.colname
parameter.
event.duration.colname the name of the column in data
containing the event duration (in days), as given by the
event.duration.colname parameter.
event.daily.dose.colname the name of the column in data
containing the prescribed daily dose, as given by the
event.daily.dose.colname parameter.
medication.class.colname the name of the column in data
containing the classes/types/groups of medication, as given by the
medication.class.colname parameter.
carry.only.for.same.medication whether the carry-over applies
only across medication of the same type, as given by the
carry.only.for.same.medication parameter.
consider.dosage.change whether the carry-over is adjusted to
reflect changes in dosage, as given by the consider.dosage.change
parameter.
followup.window.start the beginning of the follow-up window, as
given by the followup.window.start parameter.
followup.window.start.unit the time unit of the
followup.window.start, as given by the
followup.window.start.unit parameter.
followup.window.duration the duration of the follow-up window,
as given by the followup.window.duration parameter.
followup.window.duration.unit the time unit of the
followup.window.duration, as given by the
followup.window.duration.unit parameter.
observation.window.start the beginning of the observation
window, as given by the observation.window.start parameter.
observation.window.start.unit the time unit of the
observation.window.start, as given by the
observation.window.start.unit parameter.
observation.window.duration the duration of the observation
window, as given by the observation.window.duration parameter.
observation.window.duration.unit the time unit of the
observation.window.duration, as given by the
observation.window.duration.unit parameter.
date.format the format of the dates, as given by the
date.format parameter.
summary the metadata, as given by the summary parameter.
event.info the data.frame containing the event info
(irrelevant for most users; see compute.event.int.gaps for
details).
aggregation.method the aggregation method to combine CMA values
from different groups.
computed.CMA the class name of the computed CMA.
medication.groups a data.frame with medication groups and
classes
CMA the data.frame containing the actual CMA
estimates for each participant (the ID.colname column) and
sometimes treatment group, with columns:
ID.colname the patient ID as given by the ID.colname
parameter.
medication.groups only when no aggregation method is used
(aggregation.method = NA); the treatment group as given by the
medication.groups parameter.
CMA the treatment episode's estimated CMA.
# NOT RUN {
CMA_PP <- CMA_polypharmacy(data = med.events.pp,
medication.groups = med.groups,
CMA.to.apply = "CMA7",
aggregate.first = TRUE, # aggregate before summarizing
aggregation.method = "mean", # compute mean of CMAs
aggregation.method.arguments = list(na.rm = TRUE), # remove NA's during calculation
thresholds = NA, # don't apply threshold
ID.colname="PATIENT_ID",
event.date.colname="DATE",
event.duration.colname="DURATION",
event.daily.dose.colname="PERDAY",
medication.class.colname="CATEGORY",
followup.window.start=0,
observation.window.start=180,
observation.window.duration=365,
carry.only.for.same.medication = TRUE);
# }
Run the code above in your browser using DataLab