# [R] Strange Matrix Multiplication Behaviour

Huntsinger, Reid reid_huntsinger at merck.com
Mon Oct 4 16:58:47 CEST 2004

```I think this is as intended. When you do elementwise multiplication of a
vector by a matrix R there are three important points to keep in mind:

1) element-wise multiplication treats things as vectors
2) when you treat a matrix as a vector you get the _columns_ stacked one on
top of another.
3) R recycles elements of the shorter vector

So tr*(ex[1,]) is the same as multiplying _row_ 1 by the elements of tr, but
(tr*ex)[1,] multiplies the first _column_ of ex by the first 2 elements of
tr, then the second column by the second two, then the third column by the
third two, then recycles for columns 4, 5 and 6. Then the [1,] takes the
first row of the result, so you (tr[1] tr[3] tr[5] tr[1] tr[3] tr[5]) times
the first row. Which looks like what you have.

Reid Huntsinger

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Wayne Jones
Sent: Monday, October 04, 2004 10:11 AM
To: R help list
Subject: [R] Strange Matrix Multiplication Behaviour

Hi there fellow R-users,

Im seeing some strange behaviour when I multiply a vector by a matrix

Here is my script:

> tr
1         2         3         4         5         6
0.2217903 0.1560525 0.1487908 0.1671354 0.1590643 0.1471667
>
> ex1
a         b          c          d          e          f
1  0.2309579 -3.279045 -0.6694697 -1.1024404  0.2303928 -1.5527404
2 -0.2865357 -2.519789 -0.1138712 -0.3571832 -2.6727913 -0.3296945

> is.vector(tr)
[1] TRUE

> is.data.frame(ex1)
[1] TRUE

> tr* ex1[1,]
a          b           c          d          e          f
1 0.05122423 -0.5117031 -0.09961092 -0.1842569 0.03664727 -0.2285117

> (tr* ex1)[1,]
a          b          c          d          e          f
1 0.05122423 -0.4878917 -0.1064887 -0.2445106 0.03428033 -0.2469855

Notice that the output from tr * ex[1,] is different from (tr* ex1)[1,]
Especially element number 4.

I would naturally expect both vectors to be equivalent.

Can anyone shed any light on my predicament??

> version
_
platform i386-pc-mingw32
arch     i386
os       mingw32
system   i386, mingw32
status
major    1
minor    9.1
year     2004
month    06
day      21
language R

Regards

Wayne Jones

KSS Ltd
Seventh Floor  St James's Buildings  79 Oxford Street  Manchester  M1 6SS
England
Company Registration Number 2800886
Tel: +44 (0) 161 228 0040	Fax: +44 (0) 161 236 6305
mailto:kssg at kssg.com		http://www.kssg.com

The information in this Internet email is confidential and m...{{dropped}}

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help