Learn R Programming

lava (version 1.6.4)

sim.default: Wrapper function for mclapply

Description

Wrapper function for mclapply

Usage

# S3 method for default
sim(x = NULL, R = 100, f = NULL, colnames = NULL,
  messages = lava.options()$messages, mc.cores, blocksize = 2L *
  mc.cores, cl, type = 1L, seed = NULL, args = list(),
  iter = FALSE, ...)

Arguments

x

function or 'sim' object

R

Number of replications or data.frame with parameters

f

Optional function (i.e., if x is a matrix)

colnames

Optional column names

messages

Messages

mc.cores

Number of cores to use

blocksize

Split computations in blocks

cl

(optional) cluster to use for parallelization

type

type=0 is an alias for messages=1,mc.cores=1,blocksize=R

seed

(optional) Seed (needed with cl=TRUE)

args

(optional) list of named arguments passed to (mc)mapply

iter

If TRUE the iteration number is passed as first argument to (mc)mapply

...

Additional arguments to (mc)mapply

See Also

summary.sim plot.sim print.sim

Examples

Run this code
# NOT RUN {
m <- lvm(y~x+e)
distribution(m,~y) <- 0
distribution(m,~x) <- uniform.lvm(a=-1.1,b=1.1)
transform(m,e~x) <- function(x) (1*x^4)*rnorm(length(x),sd=1)

onerun <- function(iter=NULL,...,n=2e3,b0=1,idx=2) {
    d <- sim(m,n,p=c("y~x"=b0))
    l <- lm(y~x,d)
    res <- c(coef(summary(l))[idx,1:2],
             confint(l)[idx,],
             estimate(l,only.coef=TRUE)[idx,2:4])
    names(res) <- c("Estimate","Model.se","Model.lo","Model.hi",
                    "Sandwich.se","Sandwich.lo","Sandwich.hi")
    res
}
val <- sim(onerun,R=10,b0=1,messages=0,mc.cores=1)
val

val <- sim(val,R=40,b0=1,mc.cores=1) ## append results
summary(val,estimate=c(1,1),confint=c(3,4,6,7),true=c(1,1))

summary(val,estimate=c(1,1),se=c(2,5),names=c("Model","Sandwich"))
summary(val,estimate=c(1,1),se=c(2,5),true=c(1,1),names=c("Model","Sandwich"),confint=TRUE)

if (interactive()) {
    plot(val,estimate=1,c(2,5),true=1,names=c("Model","Sandwich"),polygon=FALSE)
    plot(val,estimate=c(1,1),se=c(2,5),main=NULL,
         true=c(1,1),names=c("Model","Sandwich"),
         line.lwd=1,col=c("gray20","gray60"),
         rug=FALSE)
    plot(val,estimate=c(1,1),se=c(2,5),true=c(1,1),
         names=c("Model","Sandwich"))
}

f <- function(a=1,b=1) {
  rep(a*b,5)
}
R <- Expand(a=1:3,b=1:3)
sim(f,R,type=0)
sim(function(a,b) f(a,b), 3, args=c(a=5,b=5),type=0)
sim(function(iter=1,a=5,b=5) iter*f(a,b), type=0, iter=TRUE, R=5)
# }

Run the code above in your browser using DataLab