user3436056
user3436056

Reputation: 13

R sorting string by index string

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

Answers (1)

CHP
CHP

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

Related Questions