如何从对角线计算距离矩阵?
How to calculate a distance matrix from a diagonal line?
假设我们有一个名为 Pred 的数据框。
它由每行 1 个用户组成。
用户由其唯一的 userID 指定。
用户可以按他们所属的集群分组。
用户报告了他们对任务的信心和挑战,此信息分别保存为 Conf 和 Chall。
请注意,Conf 和 Chall 具有相同的范围,即 1-6。
cluster userID Conf Chall
1 A 5 3
2 B 3 2
1 C 6 1
1 D 3 4
2 E 2 4
2 F 3 5
1 G 6 2
1 H 5 5
2 I 6 2
2 J 5 4
2 K 1 1
1 L 3 5
1 M 4 4
假设我们绘制了一个散点图,其中 Conf 在 x 轴上,Chall 在 y 轴上。
要点:
Conf == Chall
会在穿过原点的对角线上
现在我有兴趣根据坐标找到每个用户与对角线的距离:
(Conf, Chall)
总的来说,问题涉及找到点 (Conf, Chall) 与对角线上的距离。
注意:请注意,我对绘制图表不感兴趣。我对计算距离向量很感兴趣。
我明白了,这可能是一个非常基本的问题,但过去几天我一直在努力。一个简单的演示示例代码将帮助我理解这个问题。
如有任何指导,我将不胜感激!
从点 (x,y) 到对角线的欧氏距离由下式给出
abs(x - y) / sqrt(2)
参见,例如,here。因此,您可以使用
(Pred$distance <- abs(Pred$Conf - Pred$Chall) / sqrt(2))
# [1] 1.4142136 0.7071068 3.5355339 0.7071068 1.4142136 1.4142136 2.8284271
# [8] 0.0000000 2.8284271 0.7071068 0.0000000 1.4142136 0.0000000
假设我们有一个名为 Pred 的数据框。
它由每行 1 个用户组成。
用户由其唯一的 userID 指定。
用户可以按他们所属的集群分组。
用户报告了他们对任务的信心和挑战,此信息分别保存为 Conf 和 Chall。
请注意,Conf 和 Chall 具有相同的范围,即 1-6。
cluster userID Conf Chall
1 A 5 3
2 B 3 2
1 C 6 1
1 D 3 4
2 E 2 4
2 F 3 5
1 G 6 2
1 H 5 5
2 I 6 2
2 J 5 4
2 K 1 1
1 L 3 5
1 M 4 4
假设我们绘制了一个散点图,其中 Conf 在 x 轴上,Chall 在 y 轴上。
要点:
Conf == Chall
会在穿过原点的对角线上
现在我有兴趣根据坐标找到每个用户与对角线的距离:
(Conf, Chall)
总的来说,问题涉及找到点 (Conf, Chall) 与对角线上的距离。
注意:请注意,我对绘制图表不感兴趣。我对计算距离向量很感兴趣。
我明白了,这可能是一个非常基本的问题,但过去几天我一直在努力。一个简单的演示示例代码将帮助我理解这个问题。
如有任何指导,我将不胜感激!
从点 (x,y) 到对角线的欧氏距离由下式给出
abs(x - y) / sqrt(2)
参见,例如,here。因此,您可以使用
(Pred$distance <- abs(Pred$Conf - Pred$Chall) / sqrt(2))
# [1] 1.4142136 0.7071068 3.5355339 0.7071068 1.4142136 1.4142136 2.8284271
# [8] 0.0000000 2.8284271 0.7071068 0.0000000 1.4142136 0.0000000