gpt4 book ai didi

r - 在 SPSS、R 或 Excel 中按其他变量分组的向量之间的欧氏距离

转载 作者:行者123 更新时间:2023-12-04 10:07:30 25 4
gpt4 key购买 nike

我有一个数据集包含这样的东西:

case,group,val1,val2,val3,val4
1,1,3,5,6,8
2,1,2,7,5,4
3,2,1,3,6,8
4,2,5,4,3,7
5,1,8,6,5,3

我正在尝试以编程方式计算组中值向量之间的欧几里德距离。

这意味着我在 n 个组中有 x 个案例。计算行对之间的欧几里德距离,然后对组进行平均。因此,在上面的示例中,首先我计算第 1 组(案例 1、2 和 5)的平均值和标准偏差,然后标准化值(即 [(原始值 - 平均值)/标准偏差],然后计算案例之间的 ED 1 和案例 2、案例 2 和 5、案例 1 和 5,最后平均该组的 ED。

谁能提出一种以合理有效的方式实现这一目标的简洁方法?

最佳答案

是的,在 R 中可能更容易...

您的数据:

dat <- data.frame(case  = 1:5, 
group = c(1, 1, 2, 2, 1),
val1 = c(3, 2, 1, 5, 8),
val2 = c(5, 7, 3, 4, 6),
val3 = c(6, 5, 6, 3, 5),
val4 = c(8, 4, 8, 7, 3))

一个简短的解决方案:

library(plyr)
ddply(dat[c("group", "val1", "val2", "val3", "val4")],
"group", function(x)c(mean.ED = mean(dist(scale(as.matrix(x))))))
# group mean.ED
# 1 1 3.121136
# 2 2 3.162278

关于r - 在 SPSS、R 或 Excel 中按其他变量分组的向量之间的欧氏距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380282/

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