Why not use NROW?

On Fri, 5 Jun 2009, Gavin Simpson wrote:

Dear List,

A posting to R-Help exposed this problem with the print method for
objects of class Arima:

set.seed(1)
x <- arima.sim(n = 100, list(ar = 0.8897, ma = -0.2279))
mod <- arima(x, order = c(1,0,1))
coefs <- coef(mod)
mod2 <- arima(x, order = c(1,0,1), fixed = coefs)
mod2

Call:
arima(x = x, order = c(1, 0, 1), fixed = coefs)

Coefficients:
Error in se && nrow(x$var.coef) : invalid 'y' type in 'x && y'
print(mod2, se = FALSE)

Call:
arima(x = x, order = c(1, 0, 1), fixed = coefs)

Coefficients:
     ar1        ma1  intercept
  0.9323    -0.2940    -0.0353

sigma^2 estimated as 0.8339:  log likelihood = -133.55,  aic = 269.11

The print methods raises an error in this case, where all coefficients
are fixed, because x$var.coef is of length(0), which in turn results in
NULL being used in the && comparison, resulting in the error.

A potential fix is to just include a check for length(x$var.coef) > 0 in
the if statement. This fix, when applied to:

R version 2.10.0 Under development (unstable) (2009-06-05 r48712)

fixes this particular problem and passes make check-devel. A patch
against r48712 is attached, and included here in-line:

[ga...@desktop build]$ svn diff ../src/library/stats/R/arima.R
Index: ../src/library/stats/R/arima.R
===================================================================
--- ../src/library/stats/R/arima.R      (revision 48712)
+++ ../src/library/stats/R/arima.R      (working copy)
@@ -355,7 +355,7 @@
    if (length(x$coef)) {
        cat("Coefficients:\n")
        coef <- round(x$coef, digits = digits)
-        if (se && nrow(x$var.coef)) {
+        if (se && length(x$var.coef) > 0 && nrow(x$var.coef)) {
            ses <- rep(0, length(coef))
            ses[x$mask] <- round(sqrt(diag(x$var.coef)), digits = digits)
            coef <- matrix(coef, 1L, dimnames = list(NULL, names(coef)))

HTH

G
--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



--
Brian D. Ripley,                  rip...@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 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to