| SimErrors | R Documentation |
Extractor function in situations where runSimulation returned a simulation
with detected ERRORS.
SimErrors(obj, seeds = FALSE, subset = TRUE)
obj |
object returned from |
seeds |
logical; locate |
subset |
logical; take a subset of the |
Phil Chalmers rphilip.chalmers@gmail.com
Chalmers, R. P., & Adkins, M. C. (2020). Writing Effective and Reliable Monte Carlo Simulations
with the SimDesign Package. The Quantitative Methods for Psychology, 16(4), 248-280.
\Sexpr[results=rd]{tools:::Rd_expr_doi("10.20982/tqmp.16.4.p248")}
Sigal, M. J., & Chalmers, R. P. (2016). Play it again: Teaching statistics with Monte
Carlo simulation. Journal of Statistics Education, 24(3), 136-156.
\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/10691898.2016.1246953")}
SimWarnings, SimExtract
sample_sizes <- c(10, 20)
standard_deviations <- 1
Design <- createDesign(N1=sample_sizes,
N2=sample_sizes,
SD=standard_deviations)
Design
Generate <- function(condition, fixed_objects){
Attach(condition)
group1 <- rnorm(N1)
group2 <- rnorm(N2, sd=SD)
dat <- data.frame(group = c(rep('g1', N1), rep('g2', N2)),
DV = c(group1, group2))
dat
}
Analyse <- function(condition, dat, fixed_objects){
# raise errors with unequal sample sizes only
if(with(condition, N1 != N2)){
if(runif(1, 0, 1) < .9) t.test('char')
if(runif(1, 0, 1) < .9) aov('char')
if(runif(1, 0, 1) < .2) stop('my error')
}
welch <- t.test(DV ~ group, dat)
ind <- stats::t.test(DV ~ group, dat, var.equal=TRUE)
ret <- c(welch = welch$p.value, independent = ind$p.value)
ret
}
Summarise <- function(condition, results, fixed_objects) {
ret <- EDR(results)
ret
}
# print any error messages and their frequency
res <- runSimulation(design=Design, replications=3, generate=Generate,
analyse=Analyse, summarise=Summarise, max_errors = Inf)
res |> select(N1, N2, SD, ERRORS)
SimErrors(res)
SimErrors(res, subset=FALSE)
# for specific seeds (organized list of SEEDS returned)
(seeds <- SimErrors(res, seeds=TRUE))
names(seeds$SEEDS[[1]]) # first row errors
# extract one .Random.seed state for the first design condition where
# error occurred, pointing to the second uniquely recorded error message
seeds$SEEDS[[1]][[2]][, 1] -> seed_state
seed_state # note that Design_row_2 is where the error occurred
## Not run:
# pass to runSimulation() to replicate issue (not run as this calls debug())
runSimulation(design=Design, replications=3, generate=Generate,
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.