These methods enable the user to generate allocation tables for the REDCap randomization module. Randomization may be stratified by other (categorical) variables in the data set as well as by Data Access Group. Additionally, randomization may be blocked to ensure balanced groups throughout the allocation
allocationTable(
rcon,
random,
strata = NULL,
group = NULL,
dag.id = NULL,
replicates,
block.size,
block.size.shift = 0,
seed.dev = NULL,
seed.prod = NULL,
weights = NULL,
...
)# S3 method for redcapApiConnection
allocationTable(
rcon,
random,
strata = NULL,
group = NULL,
dag.id = NULL,
replicates,
block.size,
block.size.shift = 0,
seed.dev = NULL,
seed.prod = NULL,
weights = c(1, 1),
...
)
allocationTable_offline(
meta_data,
random,
strata = NULL,
group = NULL,
dag.id = NULL,
replicates,
block.size,
block.size.shift = 0,
seed.dev = NULL,
seed.prod = NULL,
weights = c(1, 1),
...
)
Returns a list with the elements
dev_allocation | data.frame with the randomization allocations for the development environment. |
prod_allocation | data.frame with the randomization allocations for the production environment. |
dev_seed | The random seed values for the development environment. |
prod_seed | The random seed values for the production environment. |
blocks | Blocking scheme used to generate the randomization. |
weights | Weighting scheme for the randomization. |
A redcapConnection
object.
character(1)
. The field name to be randomized.
character
. Field names by which to stratify the randomization.
character(1)
. A field name giving a group by which randomization should be
stratified. This could also be listed in strata
, but the argument
is provided to remain consistent with the REDCap user interface.
integerish
. Data Access Group IDs.
integerish(1)
. The number of randomizations to perform
within each stratum
integerish
. Block size for the randomization. Blocking is recommended
to ensure balanced groups throughout the randomization. This may be a vector
to indicate variable block sizes throughout the randomization.
numeric
on the interval [0, 1]
.
A vector the same length as block.size
where the
first element is 0. This controls when the block size changes as a proportion
of the total sample size. When block.size=c(8, 4, 2)
and
block.size.shift = c(0, .5, .9)
, the first half of the randomization
is performed in blocks of 8, then the next 40 percent of the randomization
is performed in blocks of 4, with the last ten percent performed in blocks
of 2.
integerish
. At least one value is required. If only one value is given,
it will be converted to a vector with length equal to the number of strata.
Values will be incremented by 100 to provide independent randomizations.
This may also have length equal to the number of strata.
integerish
. Same as seed.dev
, but used to seed the production
allocation. No pairwise elements of seed.dev
and seed.prod
may be equal. This guarantees that the two randomization schemes are
unique.
An optional vector giving the sampling weights for each of the randomization
groups. There must be one number for each level of the randomization variable. If named,
the names must match the group labels. If unnamed, the group labels will be assigned in the
same order they appear in the data dictionary. The weights will be normalized, so they do
not need to sum to 1.0. In other words, weights=c(3, 1)
can indicate a 3:1 sampling
ratio.
Arguments to pass to other methods
character(1)
. For the offline method, a text string
giving the location of the data dictionary downloaded from REDCap.
Each element in block.size
must be a multiple of the number of
groups in the randomized variable.
The 'offline' version of the function operates on the data dictionary file downloaded from REDCap. This is made available for instances where the API cannot be accessed for some reason (such as waiting for API approval from the REDCap administrator).
The value of replicates
controls how many allocations are generated. It
is possible to get slightly more replicates than requested if your blocking design
cannot exactly match replicates. For example, if the users asks for 30 replicates in
blocks of 8, a warning will be printed and 32 replicates will be returned in the
randomization table.
if (FALSE) {
unlockREDCap(connections = c(rcon = "project_alias"),
url = "your_redcap_url",
keyring = "API_KEYs",
envir = globalenv())
allocationTable(rcon,
random = "treatment_assignment",
strata = c("demographic_group", "hospital_group"),
replicates = 12,
block.size = 4,
seed.dev = 12345,
seed.prod = 54321)
}
Run the code above in your browser using DataLab