# these examples require at least dual core processor
# start snow cluster
cl <- makeCluster(2, type = "SOCK")
# load package on workers
clusterEvalQ(cl, library(simFrame))
# setup random number stream
clusterSetupRNG(cl, seed = "1234")
# function for generating data
grnorm <- function(n, means) {
group <- sample(1:2, n, replace=TRUE)
data.frame(group=group, value=rnorm(n) + means[group])
}
# control objects for data generation and contamination
means <- c(0, 0.5)
dc <- DataControl(size = 500, distribution = grnorm,
dots = list(means = means))
cc <- DCARContControl(target = "value",
epsilon = 0.1, dots = list(mean = 10))
# function for simulation runs
sim <- function(x) {
c(mean = mean(x$value),
trimmed = mean(x$value, trim = 0.1),
median = median(x$value))
}
# export objects to workers
clusterExport(cl, c("grnorm", "means", "dc", "cc", "sim"))
# run simulation
results <- clusterRunSimulation(cl, dc, nrep = 100,
contControl = cc, design = "group", fun = sim)
# plot results
plot(results, true = means)
Run the code above in your browser using DataLab