[R] matrix conformity with matrix 1x1 and scalars

Andres Legarra alegarra at neiker.net
Tue Aug 23 12:30:30 CEST 2005


Hello,
I am calculating this thing with vectors (b) and matrices (G,P):
b'G/sqrt(b'Pb)
where the denominator is a quadratic form and therefore always a scalar.

In Scilab, it is quite simple:
b'*G/sqrt(b'*P*b)
However, in R, the denominator is an (1x1)matrix and R claims it is non
conformable and I have to use drop() or as.numeric(). Like this:
> b = 1:2
> G=diag(1,2)
> P=diag(2,2)
> (t(b)%*%G) / drop( sqrt( t(b)%*%P%*%b ) )
          [,1]      [,2]
[1,] 0.3162278 0.6324555

So far, so good. My problem is solved. However I found a little bit annoying
that R is not so "clever" as to realize that b'Pb can be interpreted as a
scalar. I wonder :
would it be worth considering the implementation in R of
"recycling 1x1 matrix to scalars if appropriate"?
Just to leave the question on the ground...

Regards,

Andres
--
Andres Legarra
NEIKER
Apdo. 46
Vitoria-Gasteiz 01080 Spain
--





--
Andres Legarra Albizu
NEIKER
Apdo. 46
Vitoria-Gasteiz 01080 Spain
phone: +34 945 121323
fax: +34 945 281422
e-mail: alegarra at neiker.net
--




More information about the R-help mailing list