切换R中矩阵的列顺序

Switching the order of columns of a matrix in R

假设我生成以下虚构矩阵

mat <-matrix(1:12,3)

现在我想将列的顺序从 1:4 重新排列为 4:1

手动我可以做到这一点。

Z <- cbind(mat[,4],mat[,3],mat[,2],mat[,1])

现在当矩阵变大,例如有 30 列时,手动执行此操作将是一个乏味的过程。

有人建议用循环重写列的顺序吗?

我们可以使用索引,即从最后一个列索引 - ncol(mat) 到 1 创建一个序列 (:) 并将其用作列索引

mat[, ncol(mat):1]

rev

mat[, rev(seq_len(ncol(mat)))]