r - 在进行单变量拟合时在 mclust-package 中出现错误
问题描述
在使用 Mclust 进行单变量拟合时,出现以下错误:
Error in mstepE(data = as.matrix(data)[initialization$subset, ], z = z, :
row dimension of z should equal data length
我正在使用中提到的代码: https ://cran.r-project.org/web/packages/mclust/vignettes/mclust.html#initialisation
这是我收到错误的代码部分:
df1 <- dataSample
BIC <- NULL
for(j in 1:20){
rBIC <- mclustBIC(df1, verbose = T,
initialization = list(hcPairs = randomPairs(df1)))
BIC <- mclustBICupdate(BIC, rBIC)
}
summary(BIC)
以下链接包含要传递给变量“df1”的数据(文件名:dataSample.csv) https://drive.google.com/open?id=0Bzau9RsRnQreYk9XOWVBSm91b2o4NTQ4RlA2UFdWbDBVOVpR
解决方案
这是我从“mclust”库的一位作者(Luca Scrucca 教授)那里得到的解决方案:
“由于使用了提供 hcPairs 时发生冲突的自动子集,存在一个错误。我已在当前的 mclust 开发版本中修复了它。由于不会很快提交到 CRAN,您可以使用以下代码来避免当前版本的 mclust 出现错误:
rBIC <- mclustBIC(df1, verbose = T,
initialization = list(hcPairs = randomPairs(df1),
subset = 1:NROW(df1)))
当 bug 修复发布时,subset 参数可以省略,因为它是多余的。”
现在,代码工作正常。