切换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)))]
假设我生成以下虚构矩阵
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)))]