0

我正在尝试执行具有遗传距离矩阵和物理距离矩阵的 Mantel 测试。由于这些矩阵是如何生成的,它们的“顺序”相互之间是混乱的。令人惊讶的是,我发现很难按行/列名称(即暗名或维度名称)对这些矩阵进行排序。任何帮助将不胜感激。

下面是一个虚拟样本集:

d1 = matrix(c(0,1,2,1,0,3,2,3,0),nrow=3, ncol=3)
rownames(d1) <- c("A","B","C")
colnames(d1) <- c("A","B","C")

d3 = matrix(c(0,.2,.3,.2,0,.1,.3,.1,0),nrow=3, ncol=3)
rownames(d3) <- c("C","A","B")
colnames(d3) <- c("C", "A","B")

这将创建两个相关的矩阵。让我们假设 d1 包含有关一个物种的不同菌株(例如 A、B、C)彼此分离的距离的信息,而 d3 包含这些相同菌株之间的成对遗传差异。我需要这两个矩阵以相同的顺序执行壁炉测试。

当我尝试使用 order 时,我松开了矩阵:

d3[order(rownames(d3))]
[1] 0.2 0.3 0.0

d3[order(as.data.frame(rownames(d3)))]
[1] 0.2 0.3 0.0
4

1 回答 1

1

正如理查德指出的那样,我错过了一个逗号。

d3[order(rownames(d3)), order(colnames(d3))]

正是我想要的!

于 2015-10-21T22:31:27.327 回答