oneGroup <- generateLongitudinalDatasets(2, 10, 5)
head(oneGroup$generateData(1))
head(oneGroup$generateData(2))
oneGroup$formula
twoGroups <- generateLongitudinalDatasets(2, 20, 5, numberOfTreatmentLevels = 2)
head(twoGroups$generateData(1))
twoGroups$formula
## illustration how to generate more datasets
set.seed(1)
datasets1 <- generateLongitudinalDatasets(2, 10, 5)
set.seed(1)
datasets2 <- generateLongitudinalDatasets(3, 10, 5)
stopifnot(all.equal(datasets1$generateData(1), datasets2$generateData(1)),
all.equal(datasets1$generateData(2), datasets2$generateData(2)))
## contamination example: add outliers to 10% of observations
set.seed(42)
contam <- generateLongitudinalDatasets(
numberOfDatasetsToGenerate = 5,
numberOfSubjects = 20,
numberOfTimepoints = 5,
contamFun = function(data, info) {
n <- nrow(data)
idx <- sample(n, size = ceiling(0.1 * n))
data$y[idx] <- data$y[idx] + 10
data
}
)
head(contam$generateData(1))
## contamination example: reassign some subjects to different treatment
set.seed(42)
contamGroup <- generateLongitudinalDatasets(
numberOfDatasetsToGenerate = 5,
numberOfSubjects = 20,
numberOfTimepoints = 5,
numberOfTreatmentLevels = 2,
contamFun = function(data, info) {
## move first subject from T1 to T2
data$treatment[data$id == 1] <- "T2"
data
}
)
head(contamGroup$generateData(1), 10)
## medsim: simulation inspired by the medication dataset from confintROB
## Two subjects from treatment are mislabeled as control, and responses
## are truncated at a measurement floor of 100.
contaminateMedsim <- function(data, info) {
data$y <- pmax(data$y, 100) # measurement floor
data$treatment[data$id %in% c("2", "4")] <- "T1"
data
}
set.seed(2000)
medsim <- generateLongitudinalDatasets(
numberOfDatasetsToGenerate = 100,
numberOfSubjects = 60,
numberOfTimepoints = 7,
numberOfTreatmentLevels = 2,
timeRange = c(0, 18),
trueBeta = c(240, -3.11, -2.42, 4.00),
trueSigma = sqrt(1229.93),
trueTheta = c(1.310266, -0.07547461, 0.2147735),
contamFun = contaminateMedsim
)
head(medsim$generateData(1))
Run the code above in your browser using DataLab