如何删除 data.frame 中的冗余行按列 [1, 2],反之亦然?

问题描述

我获得了一个 distance.class 表,其中样本相互比较以计算索引。结果,每个值都会重复,并且会发生自我比较。请参阅下表:

Sample1 Sample2 Sample3
Sample1 0 0.5 1
Sample2 0.5 0 0.8
Sample3 1 0.8 0

我已经删除了自我比较(sample1 vs sample1 等) 但我不知道如何删除冗余值(即表格的上半部分)。所需的输出一个如下所示的表格,然后我可以将其融入 data.frame 以构建绘图。样本也是我想用来构建绘图的特定类型。

Sample1 Sample2 Sample3
Sample1
Sample2 0.5
Sample3 1 0.8
Var1 Var2 Type1 Type2
Sample1 Sample2 a b 0.5
Sample1 Sample3 a a 1
Sample2 Sample3 b a 0.8

解决方法

非常感谢,使用 ESTABLISHED 我能够产生预期的解决方案。

在生成调用 usedist::dist_make() 的类“dist”矩阵后,我从 phyloseq 对象中提取了分组变量:

phyloseq::distance()

然后我融化了生成的“group2samp”列表并重新排列第一列的顺序以匹配我的距离矩阵:

group2samp <- list() 
    group_list <- get_variable(sample_data(physeq),group) 
    for (groups in levels(group_list)) { # loop over the no. of group levels
        target_group <- which(group_list == groups) 
        group2samp[[ groups ]] <- sample_names(physeq)[target_group] 
    }