R中的Wordspace包,可以dist.matrix改变来处理NA的?

问题描述 投票:0回答:1

我已经计算使用从统计函数dist距离矩阵。我碰到dist.matrix从Wordspace,这似乎是为大型矩阵快得多。然而,尽管dist可以处理NA的,dist.matrix不能和时,有一个缺失值填充为NAS整个矩阵。

例如:

X <- data.frame(replicate(5,rnorm(100)))
X[1:10, 1] <- NA
X[10:30, 2] <- NA
X[50:55, 3] <- NA

d <- as.matrix(dist(as.matrix(X), method = "euclidean"))
> d[1:6, 1:6]
      1        2        3        4        5        6
1 0.000000 1.434098 2.956302 1.505901 3.172647 2.083671
2 1.434098 0.000000 3.799095 2.326719 3.599186 2.935583
3 2.956302 3.799095 0.000000 2.097622 3.661096 1.455270
4 1.505901 2.326719 2.097622 0.000000 3.995651 0.843491
5 3.172647 3.599186 3.661096 3.995651 0.000000 4.095924
6 2.083671 2.935583 1.455270 0.843491 4.095924 0.000000

鉴于:

d2 <- dist.matrix(as.matrix(X), method="euclidean")
> d2[1:6, 1:6]
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]  NaN  NaN  NaN  NaN  NaN  NaN
[2,]  NaN  NaN  NaN  NaN  NaN  NaN
[3,]  NaN  NaN  NaN  NaN  NaN  NaN
[4,]  NaN  NaN  NaN  NaN  NaN  NaN
[5,]  NaN  NaN  NaN  NaN  NaN  NaN
[6,]  NaN  NaN  NaN  NaN  NaN  NaN

参数skip.missing = T似乎并没有帮助。此外,跳绳是不是正确的解决方案:什么dist做的是规模的距离,以反映某一对非NA的数量。

有任何想法吗?

r matrix distance
1个回答
-1
投票

distm()函数处理的NA很好,但我不知道该解决方案的速度。

© www.soinside.com 2019 - 2024. All rights reserved.