【发布时间】:2017-11-10 06:32:36
【问题描述】:
假设我有 m 个感兴趣的基因和 n 个样本。我将基因突变评分为 1,非突变评分为零,因此我有一个 m x n 矩阵。我想要一个排序数据的算法,以便我可以重现下面的矩阵图。我正在用 R 编写代码,所以欢迎使用代码,但不是必需的。
显然,我首先对行进行排序,使所有样本中突变最多的行位于顶部:
data.mutations <- data.mutations[order(rowSums(data.mutations), decreasing = TRUE), ]
我不知道如何对列进行排序。第一步很简单,我按第一行对列进行排序:
data.mutations <- data.mutations[ , order(data.mutations[1, ], decreasing = TRUE)]
现在我陷入了困境。一种天真的方法需要很多循环。必须有更好的解决方案。
【问题讨论】:
-
您希望列的顺序是什么?除了重现显示的单个矩阵图之外,您没有明确说明组织规则 - 单个示例不足以最终推断规则。我有一个猜测:第 1 行中所有带有突变的突变列出现在第 1 行中没有突变的列之前;然后在每个块中重复第 2 行、第 3 行等。
-
抱歉没有说清楚。但是是的,这是正确的。