R reshape matrix by rows

I have a matrix with size 18000 x 54. I would like to reshape it as a matrix with size 54000 x 18, in which each row of my initial matrix becomes a matrix which has 3 rows.

Let’s take an example. I have a matrix as follow:

a = matrix(1:18, nrow = 2, ncol = 9, byrow = T)
a
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
   1    2    3    4    5    6    7    8    9
  10   11   12   13   14   15   16   17   18

I would like to reshape this matrix so that it becomes:

[,1]  [,2]  [,3]    
  1      4    7  
  2      5    8
  3      9   10
  10    13   16
  11    14   17
  12    15   18 

I tried two following ways, but they do not work. The first is as follows:

dim(a) = c(6,3)

The second one is to create a function and then apply to each row:

reshapeX = function(x){
   dim(x) = c(3,as.integer(length(x)/3))
   return(as.matrix(x))
}
rbind(apply(a, 1, reshapeX))

But it does not work neither. Can someone help please?

R reshape matrix by rows