[R] Error in dimnames(x) for Poisson EWMA model

David Winsemius dwinsemius at comcast.net
Wed Apr 20 21:56:01 CEST 2011


On Apr 20, 2011, at 3:05 PM, Ashley E. Jochim wrote:

> I am attempting to run a Poisson EWMA model using Patrick Brandt's  
> source code.  I get the following error when I run the code:
>
> Error in dimnames(x) <- dn :
>  length of 'dimnames' [1] not equal to array extent
>
> Dimnames(x) looks like this:
>
> [[1]]
> NULL
>
> [[2]]
> [1] "mip"       "div"       "nom"       "unity"     "mood"       
> "times"
> [7] "hmajparty" "smajparty" "pres"
>
> It seems to me that the NULL value here is causing the problem but I  
> can't figure out (1) why the null value is showing up and (2) how to  
> get rid of it.  Background code is as follows:
>
> cr.pois<- glm(countlaw ~ mip + div + nom + unity + mood + times +  
> hmajparty + smajparty + pres, family = poisson)
> summary(cr.pois)
>
> init <- coef(cr.pois)
>
> x<- cbind(mip,div,nom,unity,mood,times,hmajparty,smajparty,pres)

This returns a matrix, i.e an object with two dimensions and dimnames  
returns a list with two character vectors (one of which is null.

 > a = 1
 > b=2
 > cc=3
 > cbind(a,b,cc)
      a b cc
[1,] 1 2  3
 > dim(cbind(a,b,cc))
[1] 1 3
 > dimnames(cbind(a,b,cc))
[[1]]
NULL

[[2]]
[1] "a"  "b"  "cc"

If you wanted to assert that the other dimname should be something  
then you need to insert a value into just the first element:

dimnames(x)[[1]] <- "something"

E.g.:

 > dimnames(x)[[1]] <- "something"
 > x
           a b cc
something 1 2  3

>
> cr.PEWMA<-  
> Pewma 
> (y=countlaw,x=as.matrix(x),init.param=c(0.8,init[2:length(init)]))

Not sure why the error occurs. This appears to be using a package  
which you have chosen not to name.

-- 
David.


>
> Which results in this output:
>
> N = 10, M = 5 machine precision = 2.22045e-16
>
> iterations 34
> function evaluations 45
> segments explored during Cauchy searches 35
> BFGS updates skipped 0
> active bounds at final generalized Cauchy point 1
> norm of the final projected gradient 0.00806577
> final function value 1.78439
>
> final  value 1.784390
> converged
> Error in dimnames(x) <- dn :
>  length of 'dimnames' [1] not equal to array extent
>
> Any thoughts on what's going on here and how to fix it?
>
> Many thanks in advance.
>
> Ashley
> --
> Ashley E. Jochim
> Graduate Fellow
> Center for American Politics & Public Policy
> Department of Political Science
> University of Washington
> aew9 at u.washington.edu
> http://students.washington.edu/aew9
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list