[R] Checking if a matrix exists/is defined

Steven Yen syen04 at gmail.com
Sun Oct 19 09:05:01 CEST 2014


Thank you Rich. It works like a charm! Earlier I worked around 
by  judging its determinant:

dd<-NULL
if (invH) dd<-det(obj$hessian)
if (invH & exists("dd")){
...
}

Now I do

if (!is.null(obj$hessian) & invH){
...
}

which is more direct. Thanks again.

Steven

At 01:50 AM 10/19/2014, Richard M. Heiberger wrote:
>all() takes a logical argument, not numeric.  See ?all
>
>I think you are looking for
>is.null(obj$hessian)
>
>If this isn't what you are looking for, please send a reproducible example
>to the entire list.
>
>Rich
>
>On Sun, Oct 19, 2014 at 12:17 AM, Steven Yen <syen04 at gmail.com> wrote:
> > Hello
> > Can someone help me with the following, specifically in judging
> > whether a matrix exists. I have trouble with the first line below. In
> > this case, matrix obj$hessian exists and is 74 x 74. I receive the
> > error message:
> >
> > Warning message:
> > In all(w$hessian) : coercing argument of type 'double' to logical
> >
> > Thank you all.
> >
> > ---
> > if (!all(obj$hessian)|OPG){
> >    vb<-obj$gradientObs; vb<-solve(t(vb)%*%vb)
> >    vb.method<-"; v(b)=inv(G'G)"
> > } else {
> >    vb<- solve(-obj$hessian)
> >    vb.method<-"; v(b)=inv(-H)"
> > }
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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.



More information about the R-help mailing list