【问题标题】:R, error in kmodes() application to a text matrixR,kmodes() 应用到文本矩阵中的错误
【发布时间】:2015-09-24 13:50:03
【问题描述】:

我正在尝试将 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

【问题讨论】:

  • 这里只是猜测,我们需要设置na.rm = TRUE
  • 谢谢。我试过了,但我得到了:unused argument (na.rm = TRUE)
  • 你能分享数据吗,或者至少head(mat)
  • 那一栏有没有可能都是&lt;NA&gt;?尝试在运行算法之前手动删除所有 NA 值。

标签: r cluster-analysis


【解决方案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

【讨论】:

    【解决方案2】:

    我有同样的错误。这似乎是由于缺少数据。首先从数据中删除缺失的数据,例如通过使用kmodes(na.omit(mat), 5, iter.max=10)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-27
      • 2020-10-12
      • 2010-12-21
      • 1970-01-01
      • 2014-05-11
      • 2021-05-24
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多