[R] Question about checkTmvArgs function in rtmvnorm (package tmvtnorm)

Dimitri Liakhovitski dimitri.liakhovitski at gmail.com
Mon Feb 7 19:34:51 CET 2011


I found a reason why I was getting the error that my var-covar matrix
was not symmetric: because my column names and row names were
different!
Dimitri

On Mon, Feb 7, 2011 at 12:39 PM, Dimitri Liakhovitski
<dimitri.liakhovitski at gmail.com> wrote:
> Hello!
>
> I was wondering if it's possible to see the actual code of
> checkTmvArgs function that is part of the code for rtmvnorm (which is
> below - I just typed "rtmvnorm" on the prompt). I get an error:
>
> Error in checkTmvArgs(mean, sigma, lower, upper) :
>  sigma must be a symmetric matrix
>
> At the same time I am pretty sure that the matrix I am passing as
> sigma is a var-covar matrix (however, it is NOT a correlation matrix).
>
> Thanks a lot!
> Dimitri
>
>
> function (n, mean = rep(0, nrow(sigma)), sigma = diag(length(mean)),
>    lower = rep(-Inf, length = length(mean)), upper = rep(Inf,
>        length = length(mean)), algorithm = c("rejection", "gibbs",
>        "gibbsR"), ...)
> {
>    algorithm <- match.arg(algorithm)
>    cargs <- checkTmvArgs(mean, sigma, lower, upper)
>    mean <- cargs$mean
>    sigma <- cargs$sigma
>    lower <- cargs$lower
>    upper <- cargs$upper
>    if (n < 1 || !is.numeric(n) || n != as.integer(n) || length(n) >
>        1) {
>        stop("n must be a integer scalar > 0")
>    }
>    if (algorithm == "rejection") {
>        retval <- rtmvnorm.rejection(n, mean, sigma, lower, upper,
>            ...)
>    }
>    else if (algorithm == "gibbs") {
>        retval <- rtmvnorm.gibbs.Fortran(n, mean, sigma, lower,
>            upper, ...)
>    }
>    else if (algorithm == "gibbsR") {
>        retval <- rtmvnorm.gibbs(n, mean, sigma, lower, upper,
>            ...)
>    }
>    return(retval)
> }
>
> --
> Dimitri Liakhovitski
> Ninah Consulting
> www.ninah.com
>



-- 
Dimitri Liakhovitski
Ninah Consulting
www.ninah.com



More information about the R-help mailing list