当我运行以下代码时:
library(fossil)
df <- data.frame(long,lat)
dist <- earth.dist(df, dist=F) #calculating distance matrix
library(LPCM)
ms(dist,0.43,scaled=TRUE,iter=100,plotms=1)
我收到错误:
Error in if (th[j] < thresh) { : missing value where TRUE/FALSE needed
我已经通过了运行均值班次聚类所需的所有输入。为什么我收到此错误?
如何告诉ms
输入是距离矩阵而不是数据矩阵?
head(df)
long lat
1 116.3313 39.97575
2 116.3315 39.97562
3 116.3319 39.97550
4 116.3321 39.97545
5 116.3324 39.97550
6 116.3327 39.97548
答案 0 :(得分:0)
试试这个
ms(dist,0.43,scaled=TRUE,iter=100,plotms=1,na.rm=TRUE)
在错误发生后立即发出命令 traceback()。这将让您弄清楚代码的哪一行导致错误。看看是否有任何遗漏或0,你不希望在那次迭代中。
答案 1 :(得分:0)
由于ms
函数似乎无法处理缺失值,因此您必须从数据框中删除它们:
df <- df[apply(df, 1, function(x) !any(is.na(x))),]
dist <- earth.dist(df, dist=F) #calculating distance matrix
library(LPCM)
ms(dist,0.43,scaled=TRUE,iter=100,plotms=1)
答案 2 :(得分:0)
据我了解平均移位,
因为它需要移动点,并计算距移动位置的距离。你打算怎么预先计算这些距离?
这与k-means基本相同,k-means也需要到距离的距离。