我有两个类似于下面的矩阵:
a b c d id1 id2 id3 id4
1 2 3 4 b 1 2 3
6 7 8 9 c 0 2 4
d 1 2 2
a 5 6 8
预期的输出结果如下:
b c d a
[1,] 2 3 4 1
[2,] 7 8 9 6
我想根据第二个矩阵的第一列(id1)对左矩阵的行名进行排序。 有没有人建议如何处理? 我只是在尝试“第一矩阵” [colnames(“第二矩阵”),]。但这并不容易。
谢谢
答案 0 :(得分:1)
你可以做
first_mat[,second_mat[, 1]]
# b c d a
#[1,] 2 3 4 1
#[2,] 7 8 9 6
数据
first_mat <- structure(c(1L, 6L, 2L, 7L, 3L, 8L, 4L, 9L), .Dim = c(2L,
4L), .Dimnames = list(
NULL, c("a", "b", "c", "d")))
second_mat <- structure(c("b", "c", "d", "a", "1", "0", "1", "5", "2", "2",
"2", "6", "3", "4", "2", "8"), .Dim = c(4L, 4L), .Dimnames = list(
NULL, c("id1", "id2", "id3", "id4")))