R - 顺序表示按列名称的矩阵

时间:2014-08-24 22:43:10

标签: r sorting

我在R中有一个均值矩阵,想要对列进行排序,以便按特定顺序绘制它们。我遇到的问题是其中一列没有按照我想要的方式获得订单。 这是订购前的矩阵:

       DMSO     INH    INHLPA       LPA   Y27362 Y27363LPA
2 0.2220375 0.44090 0.4572625 0.4551429 0.262525 0.1912250
3 0.6852125 0.46985 0.4550250 0.4305714 0.246875 0.3527375

订购此矩阵的命令是:

medias.prop  <- as.matrix(as.data.frame(medias.prop)[, order(c("DMSO", "LPA", "Y27362", "Y27363LPA", "INH", "INHLPA"))])

我得到的矩阵是:

       DMSO   Y27362 Y27363LPA     INH    INHLPA       LPA
2 0.2220375 0.262525 0.1912250 0.44090 0.4572625 0.4551429
3 0.6852125 0.246875 0.3527375 0.46985 0.4550250 0.4305714

请注意,“LPA”列位于最后一位,我希望它位于第二位。 我不知道如何按照我想要的方式订购。 有什么建议吗?

谢谢,jose。

1 个答案:

答案 0 :(得分:0)

试试这个(使用data.frame而不是矩阵,但应该相同):

medias.prop <- read.table(header=TRUE, text=
"      DMSO     INH    INHLPA       LPA   Y27362 Y27363LPA
2 0.2220375 0.44090 0.4572625 0.4551429 0.262525 0.1912250
3 0.6852125 0.46985 0.4550250 0.4305714 0.246875 0.3527375")

medias.prop[,c("DMSO", "LPA", "Y27362", "Y27363LPA", "INH", "INHLPA")]

结果:

> medias.prop[,c("DMSO", "LPA", "Y27362", "Y27363LPA", "INH", "INHLPA")]
       DMSO       LPA   Y27362 Y27363LPA     INH    INHLPA
2 0.2220375 0.4551429 0.262525 0.1912250 0.44090 0.4572625
3 0.6852125 0.4305714 0.246875 0.3527375 0.46985 0.4550250