rpart problem (PR#313)

Prof Brian D Ripley ripley@stats.ox.ac.uk
Fri, 5 Nov 1999 19:03:17 +0000 (GMT)


On Fri, 5 Nov 1999 david_m_potter@groton.pfizer.com wrote:

> * * * Just the Facts * * *
> call to rpart() with a factor response gives
> the error message:
> 
> "Error: first argument is array, but not matrix."

This is an error in diag() for 0.65.1, only. It will be fixed in the next
release. (It was discussed on r-devel a few days ago.)

> In rpart(), I believe this line causes the error message:
> 
>         temp <- rp$dnode[, -(1:3)] %*% diag(init$parms[1:numclass] *
> nobs/init$counts)

Yes. put an as.vector inside the argument to diag, for now, or fix diag to
be

function (x = 1, nrow, ncol = n) 
{
    if (is.matrix(x) && nargs() == 1) {
        if ((m <- min(dim(x))) == 0) 
            return(numeric(0))
        y <- c(x)[1 + 0:(m - 1) * (dim(x)[1] + 1)]
        nms <- dimnames(x)
        if (is.list(nms) && !any(sapply(nms, is.null)) && all((nm <-nms[[1]][1:m]) == 
            nms[[2]][1:m])) 
            names(y) <- nm
        return(y)
    }
    if (is.array(x) && length(dim(x)) != 1) 
#                   ^^^^^^^^^^^^^^^^^^^^^^

        stop("first argument is array, but not matrix.")
    if (missing(x)) 
        n <- nrow
    else if (length(x) == 1 && missing(nrow) && missing(ncol)) {
        n <- as.integer(x)
        x <- 1
    }
    else n <- length(x)
    if (!missing(nrow)) 
        n <- nrow
    p <- ncol
    y <- array(0, c(n, p))
    if ((m <- min(n, p)) > 0) 
        y[1 + 0:(m - 1) * (n + 1)] <- x
    y
}

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._