想象一个由几个样本组成的成对距离矩阵,其中一些具有重复,即具有相同名称的样本,除了末尾的_r,而另一些则没有。该矩阵显然给出了所有样本对之间的距离,无论是否重复。我感兴趣的只是每个样本重复对之间的值。
例如,给定一个带有样本的矩阵,例如:
Sample1 Sample1_r Sample2 Sample2_r Sample3
Sample1 0 79 111 113 110
Sample1_r 79 0 110 112 109
Sample2 111 110 0 80 115
Sample2_r 113 112 80 0 117
Sample3 110 109 115 117 0
理想情况下,我想获得一个数据框:
Sample1 79
Sample2 80
如何以易于重复的方式提取它?我有几个矩阵,它们都是不同的,所以我不能按位置来做。我知道我应该使用grep
,但除此之外,我的创造力现在是空的。非常感谢帮助。
输入示例
m<-structure(c(0, 79.0003888816214, 111.103209038065, 113.10726184344, 110.411316165512, 79.0003888816214, 0, 110.512687922526, 112.516740727902, 109.820795049973, 111.103209038065, 110.512687922526, 0, 80.1995887790629, 115.32854184629, 113.10726184344, 112.516740727902, 80.1995887790629, 0, 117.332594651665, 110.411316165512, 109.820795049973, 115.32854184629, 117.332594651665, 0), .Dim = c(5L, 5L), .Dimnames = list(c("Sample1", "Sample1_r", "Sample2", "Sample2_r", "Sample3"), c("Sample1", "Sample1_r", "Sample2", "Sample2_r", "Sample3")))