问题描述
我获得了一个 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]
}