Reputation: 13
I would like to sort a matrix by string index
For example
matrix is
myMat =
[,1] [,2]
[1,] apple 1
[2,] banana 3
[3,] pear 4
[4,] blackberry 5
Index string is
myIdx =
[1,] banana
[2,] pear
[3,] apple
[4,] blackberry
Result have to be
myResult=
[,1] [,2]
[1,] banana 3
[2,] pear 4
[3,] apple 1
[4,] blackberry 5
How can I sort like this? Thanks
Upvotes: 0
Views: 74
Reputation: 17189
With data.table
package you can do it very easily
myMat <- data.frame(fruit = c("apple", "banana", "pear", "blackberry"), num = c(1, 3, 4, 5))
myIdx <- c("banana", "pear", "apple", "blackberry")
require(data.table)
myMat <- data.table(myMat)
myMat
## fruit num
## 1: apple 1
## 2: banana 3
## 3: pear 4
## 4: blackberry 5
setkey(myMat, fruit)
myMat[J(myIdx)]
## fruit num
## 1: banana 3
## 2: pear 4
## 3: apple 1
## 4: blackberry 5
Upvotes: 1