R: Wrapper function for mclapply

sim.default {lava} | R Documentation

## Wrapper function for mclapply

### Description

Wrapper function for mclapply

### Usage

    ## Default S3 method:
    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

### Examples

    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,density.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)

[Package lava version 1.5.1 Index]