I'm trying to multiply each element in a vector by itself such that it produces a matrix that is symmetric about the diagonal. For example, given this vector::
x <- 1:3
I would like to create this:
1 2 3
2 4 6
3 6 9
i.e:
x[1]*x[1] x[2]*x[1] x[3]*x[1]
x[1]*x[2] x[2]*x[2] x[3]*x[2]
x[1]*x[3] x[2]*x[3] x[3]*x[3]
Any help would be greatly appreciated. Thanks.
Like this:
x %o% x
which is a shortcut for
outer(x, x)
You can also do
tcrossprod(x)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With