hxd1011 - 1 year ago 73
R Question

Matrix and vector multiplication operation in R

I feel matrix operations in R is very confusing: we are mixing row and column vectors.

• Here we define
`x1`
as a vector, (I assume R default vector is a column vector? but it does not show it is arranged in that way.)

• Then we define
`x2`
is a transpose of
`x1`
, which the display also seems strange for me.

• Finally, if we define
`x3`
as a matrix the display seems better.

Now, my question is that,
`x1`
and
`x2`
are completely different things (one is transpose of another), but we have the same results here.

Any explanations? may be I should not mix vector and matrix operations together?

``````x1 = c(1:3)
x2 = t(x1)
x3 = matrix(c(1:3), ncol = 1)

x1
[1] 1 2 3

x2
[,1] [,2] [,3]
[1,]    1    2    3

x3
[,1]
[1,]    1
[2,]    2
[3,]    3

x3 %*% x1
[,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
[3,]    3    6    9

x3 %*% x2
[,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
[3,]    3    6    9
``````

See `?`%*%``:
`````` Multiplies two matrices, if they are conformable.  If one argument