0
いくつかのグループ化をしようとしていますが、このエラーが発生しています。'tree'の 'height'コンポーネントがソートされていません。cutreeのエラー
library(stringdist)
name <- c("luke,abcdef","luke,abcdeh","luke,abcdeg")
a<-stringdistmatrix(name, method="jw")
clusts <- hclust(a, method="ward.D2")
しかし、私はそれをカットしようとすると、それは私にエラー与える::
Evaluation error: the 'height' component of 'tree' is not sorted (increasingly).
私の入力がある
> cutree(clusts, h = 0.155)
Error in cutree(clusts, h = 0.155) :
the 'height' component of 'tree' is not sorted (increasingly)
をしかし、私は
a<-stringdistmatrix(name, method="jw", p=0.05)
を使用している場合
これまでythingはうまく動作します。
私は解決策を探していて見つからなかった。 これを防ぐため、どうすればよいですか?
私は(同じ距離行列を持っていますが、手によって生成された場合はそのクラスタには距離パラメータが存在しないこと、また気づいた。
これらの2つの例で 'diff(clusts $ height)'を見ると、最初は小さな負数で、2番目は正確にゼロになります。基本的に問題は、この単純なケースではすべての距離は同じですが、10進数の不完全なバイナリ表現による小さな丸めの違いがあることです。私はあなたがより多様な文字列でこの問題を起こすとは思わない。 –
それは具体的な問題です、私は不運なので、ランダムに発生した、いわば?問題は、これらの名前が私の実際の名前ではないにもかかわらず、これらの名前と私の実際の名前の間の距離が同じである(理由のために選択された)ことです。自動的に動作させる方法はありますか?私のアルゴリズムはすべての場合、これらのような不運なケースでも機能する必要があります。私はこれらの文字列を保持すれば、それについて何かできますか? – Ravonrip
クラスタを計算した後、高さを丸めることができます。 'clusts $ height < - round(clusts $ height、6)'を試してください。 –