gpt4 book ai didi

r - 将组合输出转换为 'dist' 类型的矩阵

转载 作者:行者123 更新时间:2023-12-04 22:39:59 24 4
gpt4 key购买 nike

我有以下形式的数据框:

   dim1  dim2
1 Loc.1 0.325
2 Loc.2 0.325
3 Loc.3 0.321
4 Loc.4 0.256
5 Loc.5 0.255

我想计算“dim2”中两(2)个元素的每个组合的平均值;并将输出转换为矩阵;同时保留“dim1”提供的信息。

现在,我可以使用 combn 函数获得成对均值:
combn(tab[,2],2, mean)
[1] 0.3250 0.3230 0.2905 0.2900 0.3230 0.2905 0.2900 0.2885 0.2880 0.2555

但我希望它以类似矩阵的形式显示(这实际上与类“dist”的对象非常相似,因为我希望它用于进一步分析),如下所示:
        Loc.1   Loc.2   Loc.3   Loc.4
Loc.2 0.325
Loc.3 0.323 0.323
Loc.4 0.290 0.291 0.289
Loc.5 0.290 0.290 0.288 0.256

(正如您所见,我还需要“Loc.x”信息)

我找不到可以直接在我的数据框“选项卡”上计算成对计算的简单函数。我可以使用 for 循环,但我觉得应该有一种更直接的方式。

有什么建议吗?非常感谢!

最佳答案

这是将向量转换为距离矩阵的一种相对简单的方法:

vec <- c(0.3250, 0.3230, 0.2905, 0.2900, 0.3230, 0.2905, 0.2900, 0.2885, 0.2880, 0.2555)

mat <- matrix(nrow = 5, ncol = 5)
mat[lower.tri(mat)] <- vec
mat <- as.dist(mat)

#output
> mat
1 2 3 4
2 0.3250
3 0.3230 0.3230
4 0.2905 0.2905 0.2885
5 0.2900 0.2900 0.2880 0.2555

关于r - 将组合输出转换为 'dist' 类型的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com