编辑:我认为,从我在下面与@joran 的讨论中,@joran 帮助我弄清楚了如何 dist
改变距离值(它似乎是通过值 [总尺寸]/[非-缺少尺寸],但这只是一个猜测)。如果有人知道的话,我想知道的是:真的是这样吗?如果是这样,为什么这被认为是合理的做法?可以在那里,或者是否应该有选项来dist
按照我提议的方式计算它(不过,这个问题可能是含糊的或固执己见的)。
我想知道该dist
函数实际上如何处理具有缺失值的向量。下面是一个重新创建的示例。我使用这个dist
函数和一个更基本的实现,我认为应该是欧几里得距离的定义,包括 sqrt、sum 和 powers。我还预计,如果任一向量的一个分量是NA
,那么该维度将被排除在总和之外,这就是我实现它的方式。但是您可以看到该定义与dist
.
我将使用我的基本实现来处理这些NA
值,但我想知道dist
当向量有 时实际上是如何得出一个值的NA
,以及为什么它与我在下面的计算方式不一致。我认为我的基本实现应该是默认/通用的,我无法弄清楚使用什么替代方法dist
来获得它所得到的。
谢谢,马特
v1 <- c(1,1,1)
v2 <- c(1,2,3)
v3 <- c(1,NA,3)
# Agree on vectors with non-missing components
# --------------------------------------------
dist(rbind(v1, v2))
# v1
# v2 2.236068
sqrt(sum((v1 - v2)^2, na.rm=TRUE))
# [1] 2.236068
# But they don't agree when there is a missing component
# Under what logic does sqrt(6) make sense as the answer for dist?
# --------------------------------------------
dist(rbind(v1, v3))
# v1
# v3 2.44949
sqrt(sum((v1 - v3)^2, na.rm=TRUE))
# [1] 2