Learn R Programming

MplusAutomation (version 0.2-5)

processInit:

Usage

processInit(initsection)

Arguments

initsection

Value

    Examples

    Run this code
    ##---- Should be DIRECTLY executable !! ----
    ##-- ==>  Define data, use random,
    ##--	or do  help(data=index)  for the standard data sets.
    
    ## The function is currently defined as
    function (initsection) 
    {
        assignments <- grep("^\w+\s*=", initsection, perl = T)
        argstoprocess <- vector("character", length(assignments))
        for (i in 1:length(assignments)) {
            argstoprocess[i] = initsection[assignments[i]]
            filepos = assignments[i] + 1
            while (length(grep(";\s*$", argstoprocess[i], perl = T)) != 
                1) {
                argstoprocess[i] = paste(argstoprocess[i], initsection[filepos])
                filepos = filepos + 1
            }
        }
        arglist <- strsplit(argstoprocess, "\s*=\s*", perl = T)
        names(arglist) <- make.names(sapply(arglist, "[", 1))
        arglist <- as.list(sapply(arglist, "[", -1))
        argvals <- as.character(sapply(arglist, "[", 1))
        argvals <- sub(";\s*$", "", argvals, perl = T)
        for (i in 1:length(argvals)) {
            if (length(grep("^c\(", argvals[i])) == 1 && length(grep("\)$", 
                argvals[i])) == 1) {
                arglist[[i]] <- eval(parse(text = argvals[i]))
            }
            else arglist[[i]] <- argvals[i]
        }
        if (is.null(arglist$iterate_wrt)) {
            warning("No iterators in init section.")
        }
        arglist$iterators <- unlist(strsplit(as.character(arglist$iterate_wrt), 
            "\s*,\s*", perl = T))
        for (i in 1:length(arglist$iterators)) {
            seqText <- eval(parse(text = paste("mysplit$", arglist$iterators[i], 
                sep = "")))
            if (is.null(seqText)) {
                stop("Iterator specified: ", arglist$iterators[i], 
                    ", but not found")
            }
            arglist[[arglist$iterators[i]]] <- eval(parse(text = seqText))
        }
        if (is.null(arglist$outputDirectory)) {
            arglist$outputDirectory <- getwd()
        }
        arglist
      }

    Run the code above in your browser using DataLab