在R中订购下层矩阵

时间:2017-10-12 04:15:15

标签: r dataframe matrix tidyr

收到你的帮助会很高兴。

我有一个较低的三角形矩阵,但我想根据我的OWN名称列表(可能是一个向量?)来编辑行的顺序。

INPUT

   A   C   D   B
A  0   NA  NA  NA
C  13  0   NA  NA
D  14  17  0   NA
B  12  15  16  0

输出

  A   B   C   D
A 0   NA  NA  NA
B 12  0   NA  NA
C 13  15  0   NA
D 14  16  17   0

我想回想一下,行的顺序应该是我提供的列表,而不是任何升序或降序。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

我们可以使用lower.tri得到一个逻辑矩阵,其中下半部分为TRUE,其他为FALSE,为数据集('v1')的子集。将其用于orderv1[order(v1)])并将其分配回数据的下三角

v1 <- df1[lower.tri(df1)]
df1[lower.tri(df1)] <- v1[order(v1)]