【发布时间】:2015-10-05 18:50:38
【问题描述】:
如何计算按某种处理方式分组的观测值之间的距离矩阵。
数据示例:
set.seed(1212)
df <- data.frame(yta = c(rep("A", 3), rep("B", 3)), x = rnorm(6, 10, 2), y = rnorm(6, 40, 12))
我想要得到的输出是这样的
1 2 3 4 5 6
1 4.234690 25.858459 0 0 0
2 4.234690 23.503327 0 0 0
3 25.858459 23.503327 0 0 0
4 0 0 0 9.330203 9.277692
5 0 0 0 9.330203 18.371015
6 0 0 0 9.277692 18.371015
【问题讨论】:
-
你确定输出正确吗?
-
这是错误的。无论
yta如何,现在都会计算这些值,并且我手动插入了 0。正确输出中的数字会有所不同,因为距离将被计算ytawise -
提供您如何创建输出的代码
-
as.matrix(df), dist(df[,2:3], method = "euclidean", upper = T)正如我所说,我手动删除了一些值 -
首先:示例输出与使用给定
df的dist()的输出无关。然后一个问题:我假设您想要一个立即的解决方案?因为之后使用循环将值更改为 0(df$yta[i] != df$yta[j])非常简单。