我正在尝试将R中的kmodes clustering方法(来自klaR包)应用到由大约1000个字符串和6列组成的文本矩阵中。 不幸的是,我得到了一个我无法理解的错误:
kmodes(mat, 5, iter.max=10)
Error in cluster[j] <- which.min(dist) : replacement has length zero
您对此为何发生了什么想法?
编辑:这是头(垫):
1 aaa ccc iii <NA> 0
2 aaa ddd kkk <NA> 0
3 aaa eee -273 <NA> 0
4 aaa fff lll <NA> 0
5 bbb ggg 67 <NA> 0
6 bbb hhh mmm <NA> 0
答案 0 :(得分:1)
您可以很好地使用kmodes(na.omit(mat), 5, iter.max = 10)
,但这会导致数据丢失,这是不可理解的。
您可以检查summary(mat)
以查找缺失数据或NA值,然后使用随机插补替换它们。
dataframeName$variable <- with(dataframeName, impute(variable, 'random'))
如果您在列/变量中有太多NA值,那么您也可以忽略该列。 查看链接: - https://discuss.analyticsvidhya.com/t/how-to-handle-missing-values-of-categorical-variables/310
答案 1 :(得分:0)
我有同样的错误。这似乎是由于缺少数据。首先从数据中删除丢失的数据,例如使用kmodes(na.omit(mat), 5, iter.max=10)
。