Nothing
## ----chunkname, echo=-1-------------------------------------------------------
data.table::setDTthreads(2)
## ----echo = FALSE, message=FALSE----------------------------------------------
library(simstudy)
library(ggplot2)
library(scales)
library(grid)
library(gridExtra)
library(survival)
library(gee)
library(data.table)
plotcolors <- c("#B84226", "#1B8445", "#1C5974")
cbbPalette <- c("#B84226","#B88F26", "#A5B435", "#1B8446",
"#B87326","#B8A526", "#6CA723", "#1C5974")
ggtheme <- function(panelback = "white") {
ggplot2::theme(
panel.background = element_rect(fill = panelback),
panel.grid = element_blank(),
axis.ticks = element_line(colour = "black"),
panel.spacing =unit(0.25, "lines"), # requires package grid
panel.border = element_rect(fill = NA, colour="gray90"),
plot.title = element_text(size = 8,vjust=.5,hjust=0),
axis.text = element_text(size=8),
axis.title = element_text(size = 8)
)
}
splotfunc <- function(dt, ptitle) {
dtplot <- dt[,.N,keyby=.(male, over65, rxGrp)][, .(rxGrp, grp = male * 2 + over65 * 1, N)]
ggplot(dtplot, aes(factor(grp), N)) +
geom_bar(aes(fill = factor(rxGrp)), alpha=.8, position = "dodge", stat="identity") +
scale_fill_manual(values = plotcolors) +
ggtitle(ptitle) +
theme(legend.position = "none") +
ggtheme() +
xlab("Strata") +
ylim(0,80)
}
aplotfunc <- function(dt, ptitle) {
dtplot <- dt[,.N,keyby=.(rxGrp)]
ggplot(dtplot, aes(factor(rxGrp), N)) +
geom_bar(aes(fill = factor(rxGrp)), alpha=.8, position="dodge", stat="identity", width=.5) +
scale_fill_manual(values = plotcolors) +
ggtitle(ptitle) +
theme(legend.position = "none") +
ggtheme() +
xlab("Treatment group") +
ylim(0,150)
}
## -----------------------------------------------------------------------------
def <- defData(varname = "male", dist = "binary",
formula = .5 , id="cid")
def <- defData(def, varname = "over65", dist = "binary",
formula = "-1.7 + .8*male", link="logit")
def <- defData(def, varname = "baseDBP", dist = "normal",
formula = 70, variance = 40)
dtstudy <- genData(330, def)
## ----tidy = TRUE--------------------------------------------------------------
study1 <- trtAssign(dtstudy , n=3, balanced = TRUE, strata = c("male","over65"), grpName = "rxGrp")
study1
## ----tidy = TRUE--------------------------------------------------------------
study2 <- trtAssign(dtstudy , n=3, balanced = TRUE, grpName = "rxGrp")
## ----tidy = TRUE--------------------------------------------------------------
study3 <- trtAssign(dtstudy , n=3, balanced = FALSE, grpName = "rxGrp")
## ----tidy = TRUE, echo = FALSE, fig.width = 4, fig.height = 6-----------------
p1 <- splotfunc(study1, "Balanced within strata")
p1a <- aplotfunc(study1, "")
p2 <- splotfunc(study2, "Balanced without strata")
p2a <- aplotfunc(study2, "")
p3 <- splotfunc(study3, "Random allocation")
p3a <- aplotfunc(study3, "")
grid.arrange(p1, p1a, p2, p2a, p3, p3a, ncol=2)
## -----------------------------------------------------------------------------
def <- defData(varname = "male", dist = "binary",
formula = .5 , id="cid")
def <- defData(def, varname = "over65", dist = "binary",
formula = "-1.7 + .8*male", link="logit")
def <- defData(def, varname = "rx", dist = "trtAssign",
formula = "1;1", variance = "male;over65")
def <- defData(def, varname = "y", dist = "normal",
formula = "20 + 5*male + 10*over65 + 10*rx", variance = 40)
dtstudy <- genData(330, def)
dtstudy
## -----------------------------------------------------------------------------
dtstudy[, .(n = .N, avg = round(mean(y), 1)), keyby = .(male, over65, rx)]
## ----tidy = TRUE--------------------------------------------------------------
formula1 <- c("-2 + 2*male - .5*over65", "-1 + 2*male + .5*over65")
dtExp <- trtObserve(dtstudy, formulas = formula1, logit.link = TRUE, grpName = "exposure")
## ----tidy = TRUE, echo = FALSE, fig.width = 6.5, fig.height = 2.5-------------
dtplot1 <- dtExp[,.N,keyby=.(male,exposure)]
p1 <- ggplot(data = dtplot1, aes(x=factor(male), y=N)) +
geom_bar(aes(fill=factor(exposure)), alpha = .8, stat="identity", position = "dodge") +
ggtheme() +
theme(axis.title.x = element_blank()) +
theme(legend.title = element_text(size = 8)) +
ylim(0, 150) +
scale_fill_manual(values = plotcolors, name = "Exposure") +
scale_x_discrete(breaks = c(0, 1), labels = c("Female", "Male")) +
ylab("Number exposed")+
ggtitle("Gender")
dtplot2 <- dtExp[,.N,keyby=.(over65,exposure)]
p2 <- ggplot(data = dtplot2, aes(x=factor(over65), y=N)) +
geom_bar(aes(fill=factor(exposure)), alpha = .8, stat="identity", position = "dodge") +
ggtheme() +
theme(axis.title.x = element_blank()) +
theme(legend.title = element_text(size = 8)) +
ylim(0, 150) +
scale_fill_manual(values = plotcolors, name = "Exposure") +
scale_x_discrete(breaks = c(0, 1), labels = c("65 or younger", "Over 65")) +
ylab("Number exposed") +
ggtitle("Age")
grid.arrange(p1,p2,nrow=1)
## ----tidy = TRUE--------------------------------------------------------------
formula2 <- c(.35, .45)
dtExp2 <- trtObserve(dtstudy, formulas = formula2, logit.link = FALSE, grpName = "exposure")
## ----tidy = TRUE, echo = FALSE, fig.width = 6.5, fig.height = 2.5-------------
dtplot1a <- dtExp2[,.N,keyby=.(male,exposure)]
p1a <- ggplot(data = dtplot1a, aes(x=factor(male), y=N)) +
geom_bar(aes(fill=factor(exposure)), alpha = .8, stat="identity", position = "dodge") +
ggtheme() +
theme(axis.title.x = element_blank()) +
theme(legend.title = element_text(size = 8)) +
ylim(0, 150) +
scale_fill_manual(values = plotcolors, name = "Exposure") +
scale_x_discrete(breaks = c(0, 1), labels = c("Female", "Male")) +
ylab("Number exposed")+
ggtitle("Gender")
dtplot2a <- dtExp2[,.N,keyby=.(over65,exposure)]
p2a <- ggplot(data = dtplot2a, aes(x=factor(over65), y=N)) +
geom_bar(aes(fill=factor(exposure)), alpha = .8, stat="identity", position = "dodge") +
ggtheme() +
theme(axis.title.x = element_blank()) +
theme(legend.title = element_text(size = 8)) +
ylim(0, 150) +
scale_fill_manual(values = plotcolors, name = "Exposure") +
scale_x_discrete(breaks = c(0, 1), labels = c("65 or younger", "Over 65")) +
ylab("Number exposed") +
ggtitle("Age")
grid.arrange(p1a,p2a,nrow=1)
## -----------------------------------------------------------------------------
library(simstudy)
library(ggplot2)
defc <- defData(varname = "ceffect", formula = 0, variance = 0.20,
dist = "normal", id = "cluster")
defc <- defData(defc, "m", formula = 15, dist = "nonrandom")
defa <- defDataAdd(varname = "Y",
formula = "0 + ceffect + 0.1*period + trt*1.5",
variance = 1.75, dist = "normal")
## -----------------------------------------------------------------------------
set.seed(608477)
dc <- genData(30, defc)
dp <- addPeriods(dc, 24, "cluster", timevarName = "t")
dp <- trtStepWedge(dp, "cluster", nWaves = 5, lenWaves = 4,
startPer = 4, grpName = "trt")
dd <- genCluster(dp, cLevelVar = "timeID", "m", "id")
dd <- addColumns(defa, dd)
dd
## -----------------------------------------------------------------------------
dSum <- dd[, .(Y = mean(Y)), keyby = .(cluster, period, trt, startTrt)]
ggplot(data = dSum,
aes(x = period, y = Y, group = interaction(cluster, trt))) +
geom_line(aes(color = factor(trt))) +
facet_grid(factor(startTrt, labels = c(1 : 5)) ~ .) +
scale_x_continuous(breaks = seq(0, 23, by = 4), name = "week") +
scale_color_manual(values = c("#b8cce4", "#4e81ba")) +
theme(panel.grid = element_blank(),
legend.position = "none")
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.