Nothing
context("Probabilities: Complete")
expect_constCol <- function(matrix, val, N = 100) {
test <-
sweep(
matrix,
MARGIN = 2,
STATS = val,
FUN = function(x, y)
abs(x - y) < 1e-7
)
expect_true(all(test))
expect_equal(nrow(matrix), N)
if (length(val) > 1) {
expect_equal(ncol(matrix), length(val))
}
if (is.character(names(val))) {
expect_equal(paste0("prob_", names(val)), colnames(matrix))
}
}
test_that("2-arm designs", {
expect_constCol(complete_ra_probabilities(N = 100), .5)
expect_constCol(complete_ra_probabilities(N = 100, m = 50), .5)
expect_constCol(complete_ra_probabilities(N = 100, prob = .3), c(.7, .3))
expect_constCol(
complete_ra_probabilities(
N = 100,
m_each = c(30, 70),
conditions = c("control", "treatment")
),
c(control = .3, treatment = .7)
)
})
test_that("Multi-arm Designs", {
expect_constCol(complete_ra_probabilities(N = 100, num_arms = 3), 1 / 3)
expect_constCol(complete_ra_probabilities(N = 100,
m_each = c(30, 30, 40)),
c(.3, .3, .4))
expect_constCol(
complete_ra_probabilities(
N = 100,
m_each = c(30, 30, 40),
conditions = c("control", "placebo", "treatment")
),
c(
control = .3,
placebo = .3,
treatment = .4
)
)
expect_constCol(
complete_ra_probabilities(
N = 100,
conditions = c("control", "placebo", "treatment")
),
c(
control = 1,
placebo = 1,
treatment = 1
) / 3
)
expect_constCol(complete_ra_probabilities(N = 100, prob_each = c(.2, .7, .1)),
c(.2, .7, .1))
expect_constCol(complete_ra_probabilities(N = 101, prob_each = c(.2, .7, .1)),
c(.2, .7, .1),
101)
})
test_that("Special cases", {
expect_constCol(complete_ra_probabilities(
2,
m_each = c(1, 0, 1),
conditions = c("T1", "T2", "T3")
),
c(T1 = .5, T2 = 0, T3 = .5),
2)
expect_constCol(complete_ra_probabilities(
2,
m_each = c(0, 0, 2),
conditions = c("T1", "T2", "T3")
),
c(T1 = 0, T2 = 0, T3 = 1),
2)
})
# Simple Designs ----------------------------------------------------------
context("Probabilities: Simple")
test_that("Two Group Designs", {
expect_constCol(simple_ra_probabilities(N = 100),
c(.5, .5))
expect_constCol(simple_ra_probabilities(N = 100, prob = 0.5),
c(.5, .5))
expect_constCol(
simple_ra_probabilities(
N = 100,
prob_each = c(0.3, 0.7),
conditions = c("control", "treatment")
),
c(control = .3, treatment = .7)
)
})
test_that("Multi-arm Designs", {
expect_constCol(simple_ra_probabilities(N = 100, num_arms = 3),
1 / 3)
expect_constCol(simple_ra_probabilities(N = 100, prob_each = c(0.3, 0.3, 0.4)),
c(.3, .3, .4))
expect_constCol(
simple_ra_probabilities(
N = 100,
prob_each = c(0.3, 0.3, 0.4),
conditions = c("control", "placebo", "treatment")
),
c(
control = 0.3,
placebo = 0.3,
treatment = 0.4
)
)
expect_constCol(
simple_ra_probabilities(
N = 100,
conditions = c("control", "placebo", "treatment")
),
c(
control = 1,
placebo = 1,
treatment = 1
) / 3
)
})
# Blocked Designs ---------------------------------------------------------
context("Probabilities: Blocked")
blocks <- rep(c("A", "B", "C"), times = c(50, 100, 200))
test_that("Blocked 50/100/200", {
expect_constCol(block_ra_probabilities(blocks = blocks),
.5,
350)
})
test_that("Blocked 50/100/200 block_m_each even", {
block_m_each <- rbind(c(25, 25),
c(50, 50),
c(100, 100))
expect_constCol(block_ra_probabilities(blocks = blocks, block_m_each = block_m_each),
.5,
350)
})
test_that("Blocked 50/100/200 block_m_each different", {
# Different weights per block
block_m_each <- rbind(c(10, 40),
c(30, 70),
c(50, 150))
mapply(
expect_constCol,
by(
block_ra_probabilities(
blocks = blocks,
block_m_each = block_m_each,
conditions = c("control", "treatment")
),
blocks,
as.matrix
),
list(
c(control = .2, treatment = .8),
c(control = .3, treatment = .7),
c(control = .25, treatment = .75)
),
list(50, 100, 200)
)
})
test_that("Blocked 50/100/200 3 arms", {
expect_constCol(block_ra_probabilities(blocks = blocks, num_arms = 3),
1 / 3,
350)
})
test_that("Blocked 50/100/200 3 arms block_m_each", {
block_m_each <- rbind(c(10, 20, 20),
c(30, 50, 20),
c(50, 75, 75))
mapply(
expect_constCol,
by(
block_ra_probabilities(blocks = blocks, block_m_each = block_m_each),
blocks,
as.matrix
),
list(c(.2, .4, .4), c(.3, .5, .2), c(.25, .375, .375)),
as.list(rowSums(block_m_each))
)
rownames(block_m_each) <- c("control", "placebo", "treatment")
mapply(
expect_constCol,
by(
block_ra_probabilities(
blocks = blocks,
block_m_each = block_m_each,
conditions = c("control", "placebo", "treatment")
),
blocks,
as.matrix
),
list(
c(
control = .2,
placebo = .4,
treatment = .4
),
c(
control = .3,
placebo = .5,
treatment = .2
),
c(
control = .25,
placebo = .375,
treatment = .375
)
),
as.list(rowSums(block_m_each))
)
})
test_that("Blocked 50/100/200 3 arms prob_each", {
expect_constCol(block_ra_probabilities(blocks = blocks, prob_each = c(.1, .1, .8)),
c(.1, .1, .8),
350)
})
test_that("Blocked 50/100/200 3 arms prob_each matrix", {
block_prob_each <- rbind(c(.1, .2, .7),
c(.1, .3, .6),
c(1 / 3, 1 / 3, 1 / 3))
mapply(
expect_constCol,
by(
block_ra_probabilities(blocks = blocks, block_prob_each = block_prob_each),
blocks,
as.matrix
),
split(block_prob_each, 1:3),
as.list(table(blocks))
)
})
context("Probabilities: Clustered")
clusters <- rep(letters[1:15], times = 1:15)
test_that("Clustered Two Arm", {
expect_constCol(cluster_ra_probabilities(clusters = clusters),
.5,
length(clusters))
expect_constCol(cluster_ra_probabilities(clusters = clusters, m = 10),
c(1, 2) / 3,
length(clusters))
expect_constCol(
cluster_ra_probabilities(
clusters = clusters,
m_each = c(9, 6),
conditions = c("control", "treatment")
),
c(control = .6, treatment = .4),
length(clusters)
)
})
# Multi-arm Designs
test_that("Clustered Three Arm", {
expect_constCol(cluster_ra_probabilities(clusters = clusters, num_arms = 3),
1 / 3,
length(clusters))
expect_constCol(
cluster_ra_probabilities(clusters = clusters, m_each = c(3, 3, 9)),
c(3, 3, 9) / 15,
length(clusters)
)
expect_constCol(
cluster_ra_probabilities(
clusters = clusters,
m_each = c(3, 3, 9),
conditions = c("control", "placebo", "treatment")
),
c(
control = 3,
placebo = 3,
treatment = 9
) / 15,
length(clusters)
)
expect_constCol(
cluster_ra_probabilities(
clusters = clusters,
conditions = c("control", "placebo", "treatment")
),
c(
control = 1,
placebo = 1,
treatment = 1
) / 3,
length(clusters)
)
expect_constCol(
cluster_ra_probabilities(clusters = clusters, prob_each = c(.1, .2, .7)),
c(.1, .2, .7),
length(clusters)
)
})
context("Probabilities: Blocked and Clustered")
# Blocked and clustered designs -------------------------------------------
clusters <- rep(letters[1:15], times = 1:15)
blocks <-
paste0("block_", 1:5)[cut(match(clusters, letters), 0:5 * 3, labels = FALSE)]
test_that("block, cluster", {
expect_constCol(
block_and_cluster_ra_probabilities(clusters = clusters, blocks = blocks),
.5,
length(clusters)
)
expect_constCol(
block_and_cluster_ra_probabilities(
clusters = clusters,
blocks = blocks,
num_arms = 3
),
c(1, 1, 1) / 3,
length(clusters)
)
expect_constCol(
block_and_cluster_ra_probabilities(
clusters = clusters,
blocks = blocks,
prob_each = c(.2, .5, .3)
),
c(.2, .5, .3),
length(clusters)
)
block_m_each <- rbind(c(1, 2),
c(2, 1),
c(1, 2),
c(2, 1),
c(2, 1))
mapply(
expect_constCol,
by(
block_and_cluster_ra_probabilities(
clusters = clusters,
blocks = blocks,
block_m_each = block_m_each
),
blocks,
as.matrix
),
list(c(1, 2) / 3, c(2, 1) / 3, c(1, 2) / 3, c(2, 1) / 3, c(2, 1) / 3),
as.list(table(blocks))
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.