R 中基于 DTWCLUST 形状的聚类分析:NA/NaN/Inf 在外部函数调用中尽管有完整的数据集
DTWCLUST Shape Based Cluster Analysis in R: NA/NaN/Inf in Foreign Function Call Despite Complete Dataset
我们目前正在尝试 运行 基于 dtwclust 包的形状,并且 运行 正在解决以下问题:
对于我们数据的某些子集,会收到此错误消息:
Error in stats::hclust(stats::as.dist(distmat), method, members = dots$members) : NA/NaN/Inf in foreign function call (arg 11)
起初,我们认为我们的数据框中可能缺少数据。
但是,我们测试了 NA、NaN、Inf 和数据类型(数字),结果一切正常。
更奇怪的是 - 它似乎在将数据子集化为大约 1.5k 行大小的块时起作用。其他变量工作得很好。
我们找不到任何一致的模式,并且似乎没有更接近解决方案 - 非常感谢您的专业知识和帮助。
为使错误可重现,请查找附件中的代码和完整数据集。
代码:
require(dtwclust)
hc_anger_sbd_k10 <- tsclust(anger, type = "h", k = 10L, preproc = zscore, seed = 100, distance = "sbd", centroid = shape_extraction, control = hierarchical_control(method="average"))
非常感谢和亲切的问候
您有空系列,即所有值为零的系列。
例如 anger[1949,]
。
根据SBD的定义,这样的数列和其他数列之间的距离是无限的。
您可能需要使用 anger[rowSums(anger) != 0,]
.
之类的方法删除它们
我们目前正在尝试 运行 基于 dtwclust 包的形状,并且 运行 正在解决以下问题: 对于我们数据的某些子集,会收到此错误消息:
Error in stats::hclust(stats::as.dist(distmat), method, members = dots$members) : NA/NaN/Inf in foreign function call (arg 11)
起初,我们认为我们的数据框中可能缺少数据。 但是,我们测试了 NA、NaN、Inf 和数据类型(数字),结果一切正常。
更奇怪的是 - 它似乎在将数据子集化为大约 1.5k 行大小的块时起作用。其他变量工作得很好。
我们找不到任何一致的模式,并且似乎没有更接近解决方案 - 非常感谢您的专业知识和帮助。
为使错误可重现,请查找附件中的代码和完整数据集。
代码:
require(dtwclust)
hc_anger_sbd_k10 <- tsclust(anger, type = "h", k = 10L, preproc = zscore, seed = 100, distance = "sbd", centroid = shape_extraction, control = hierarchical_control(method="average"))
非常感谢和亲切的问候
您有空系列,即所有值为零的系列。
例如 anger[1949,]
。
根据SBD的定义,这样的数列和其他数列之间的距离是无限的。
您可能需要使用 anger[rowSums(anger) != 0,]
.