J.Pop
J.Pop

Reputation: 35

Sort matrix by colnames from another matrix

I have two matrices with the same dimensions and they both have the same stock names as colnames, but in a different order!

I would like to sort the matrix "A" by the colnames of the matrix "B".

So the A colnames and the according value should be in the same order as the colnames of B.

How can I do this?

Example: enter image description here

Kind Regards

Upvotes: 1

Views: 438

Answers (1)

Julius Vainora
Julius Vainora

Reputation: 48191

Your example in R terms would be

A <- matrix(c(1, 4, 2), nrow = 1)
colnames(A) <- c("B", "D", "E")
A
#      B D E
# [1,] 1 4 2

B <- matrix(c(2, 5, 1), nrow = 1)
colnames(B) <- c("E", "B", "D")
B
#      E B D
# [1,] 2 5 1

Then we may simply subset the columns of A in the same order as they are in B:

A[, colnames(B)]
# E B D 
# 2 1 4 

Upvotes: 2

Related Questions