R中特定行的反向矩阵行名称

时间:2018-04-02 03:31:01

标签: r matrix reverse rowname

我有以下矩阵:

  

mymatrix< - matrix(1:16,nrow = 4,ncol = 4,dimnames = list(字母[1:4],1:4))

我想颠倒某些特定行的行名称顺序(不改变矩阵单元格值),例如行b和行c。我怎么能管理它?实际上类似于重命名这些行,但是我必须为在矩阵中不同位置分组的许多行执行此操作,并且我希望只需一步即可完成。

非常感谢你!

1 个答案:

答案 0 :(得分:0)

将要反转的行放在列表中,然后循环执行:

mymatrix <- matrix(1:12, nrow = 4, ncol = 4, dimnames  =list(letters[1:4], 1:4))

to_reverse = list(c("b", "c"), c("a", "d"))
for (i in seq_along(to_reverse)) {
  ind = row.names(mymatrix) %in% to_reverse[[i]]
  row.names(mymatrix)[ind] = rev(row.names(mymatrix)[ind])
}
mymatrix
#   1 2  3 4
# d 1 5  9 1
# c 2 6 10 2
# b 3 7 11 3
# a 4 8 12 4