問題タブ [hclust]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - Rデンドログラムでエッジに色を付けたり四角形を正しく描画したりするにはどうすればよいですか?
R のと関数を使用して、このデンドログラムを生成しました。hclust()
as.dendrogram()
plot.dendrogram()
dendrapply()
関数とローカル関数を使用して葉に色を付けましたが、正常に機能しています。
ノードのセット (たとえば、ツリーの右下隅にある" _+v\_stat5a\_01_
" と " "のクラスター) が有意または重要かどうかを示す統計テストの結果があります。_+v\_stat5b\_01_
dendrapply()
また、重要な葉を含むデンドログラム内の正確なノードを見つけるために使用できるローカル関数もあります。
私はどちらかをしたいです(例に従って):
_+v\_stat5a\_01_
" " と " "を結ぶエッジに色を付け_+v\_stat5b\_01_
ます。また、- " " と " "の
rect()
周りを描く_+v\_stat5a\_01_
_+v\_stat5b\_01_
次のローカル関数があります (「nodes-in-leafList-match-nodes-in-clusterList」条件の詳細は重要ではありませんが、重要なノードが強調表示されます)。
このif
ブロック内から を呼び出してみdendrapply(n, markEdges)
ましたが、うまくいきませんでした:
_+v\_stat5a\_01_
私の理想的な例では、「 」と「 」をつなぐエッジ_+v\_stat5b\_01_
は破線で赤色になります。
私はまたrect.hclust()
、このif
ブロック内で使用しようとしました:
しかし、結果は水平樹形図 (つまり、水平ラベルを持つ樹形図) では機能しません。以下に例を示します(右下隅の赤いストライプに注意してください)。生成されるものの次元について何かが正しくなくrect.hclust()
、それがどのように機能するのかわかりません。自分のバージョンを書くことができます。
edgePar
取得または適切に動作するためのアドバイス、または独自の同等のものrect.hclust()
を作成できるようにするためのアドバイスに感謝します。rect.hclust()
アップデート
この質問をして以来、パラメーターを計算してオブジェクトgetAnywhere(rect.hclust())
を描画する関数コードを取得していました。rect
この関数のカスタム バージョンを作成して、水平および垂直の葉を処理し、 で呼び出しますdendrapply()
。
ただし、 の一部を削除するある種のクリッピング効果がありrect
ます。水平の葉 (木の右側に描かれる葉) の場合、rect
いずれかの右端が消えるか、または の他の 3 つの辺の境界幅よりも細くなりrect
ます。垂直の葉 (ツリーの下部に描かれる葉) の場合、 の一番下の端でrect
同じ表示上の問題が発生します。
rect
重要なクラスターをマークする手段として行ったのは、クラスターのエッジの先端と (水平) リーフ ラベルの間に垂直の赤いストライプをレンダリングするように幅を狭めることです。
これにより、クリッピングの問題は解消されますが、別の問題が発生します。つまり、クラスター エッジの先端と葉のラベルの間のスペースが 6 ピクセル程度しかなく、あまり制御できません。これにより、縦縞の幅が制限されます。
より悪い問題は、x
縦縞が 2 つの要素の間に収まる場所を示す座標が、より大きなツリー ( par["usr"]
) の幅に基づいて変化することです。これは、ツリー階層が最終的にどのように構造化されるかによって異なります。
x
私は「修正」、またはより適切に言えば、この値とrect
水平方向の木の幅を調整するためのハックを書きました。常に一貫して機能するとは限りませんが、私が作成しているツリーでは、エッジやラベルに近づきすぎないように (またはオーバーラップさせないように) しているようです。
rect
最終的には、クリッピングがないように を描画する方法を見つけた方がよいでしょう。x
または、特定のツリーのエッジとラベルの間の特定の位置を計算する一貫した方法で、ストライプを適切に中央に配置してサイズを調整します。
色や線のスタイルでエッジに注釈を付ける方法にも非常に興味があります。
r - 複数の hclust オブジェクトからのコンセンサス ツリーまたは「ブートストラップ比率」
1 つの変数のわずかな変動に起因する hclust オブジェクトのリストがあります (距離行列を計算するため)。
- ここで、このリストからコンセンサス ツリーを作成したいと思います。
これを行うための汎用パッケージはありますか? maanova からいくつかのコードをハッキングしていますが、動作しているように見えますが、「通常の」ブートストラップ (化学データ) を行っていないため、見苦しく、多くのハッキングが必要です。
/Palle Villesen、デンマーク
r - hclust関数のクラスタリングリスト
メソッドを使用しplot(hclust(dist(x)))
て、クラスターツリーマップを描画することができました。できます。それでも、樹形図ではなく、すべてのクラスターのリストを取得したいと思います。これは、大量のデータ(150Kノードなど)があり、プロットが乱雑になるためです。
言い換えると、a b c
がクラスターである場合、d e f g
がクラスターである場合、次のようなものを取得したいとします。
これは、私が「出力」として取得したいものとは正確に一致しないことに注意してください。これは単なる例です。ツリープロットの代わりにクラスターのリストを取得できるようにしたいだけです。これは、ベクトル、行列、または要素が属するグループを示す単純な数値である可能性があります。
これはどのように可能ですか?
r - ヒートマップでの距離行列とクラスタリング方法の設定.2
heatmap.2 のデフォルトは、距離行列を計算するための dist と、クラスタリングのための hclust です。ユークリッド法を使用するように dist を設定し、重心法を使用するように hclust を設定する方法はありますか? 以下にコンパイル可能なコードサンプルを提供しました。distfun = dist(method = "euclidean") を試しましたが、うまくいきません。何か案は?
r - クラスター (リーフ) からのメンバーの取得
hclust
を使用してクラスタを構築したらcutree
、ダウン クラスタを指定します。さまざまなクラスターを形成するメンバーをどのように取得できますか? 単純な階層クラスターを作成したとします。クラスターのグループのリーフに含まれる要素を「個別に」取得できるコマンドはどれですか?
で試しましtable()
たが、方法はありません...
r - Rのテーブルとしてデンドログラムをエクスポートする
hclust-dendrogram を R からデータ テーブルにエクスポートして、後で別の (「自家製」) ソフトウェアにインポートしたいと考えています。str(unclass(fit))
デンドログラムのテキスト概要を提供しますが、私が探しているのは実際には数値テーブルです。私は Bioconductor ctc パッケージを見てきましたが、それが生成している出力はやや不可解に見えます。この表に似たものを用意したいと思います: http://stn.spotfire.com/spotfire_client_help/heat/heat_importing_exporting_dendrograms.htm
R の hclust オブジェクトからこれを取得する方法はありますか?
r - R の hclust からテキスト内の木構造を抽出する
需要予測プロジェクトの範囲内で、トップダウン予測アルゴリズムを適用できるように、互いに類似している時系列をグループ化する最良の方法を決定したいと考えています。現時点での私の主な質問は、適切なグループとは何か、それらのグループの適切な階層は何かを判断することです。いくつか読んだ後、Dynamic Time Warping が役立つ可能性があると思います。これをテストするために、小さなテスト ケースを作成しましたが、1 つの問題に直面しています。これは、たとえばテキスト ツリーなどで階層を抽出する方法です。多分あなたの一人が私をさらに助けてくれることを願っています。
私が得たものを示すために、次のケースを作成しました。
どういうわけか、クラスターの名前とメンバーをテキストで取得して、引き続き作業できるようにしたいと思います。誰でもアイデアはありますか?
ありがとう!
r - rで紅葉した樹形図の凡例を作成する
次のように樹状図の葉に色を付けました
私がしたいこと: 1) 色を説明する凡例を追加します (つまり、オレンジ = 北) 2) 葉のラベルを大きく太字にします (cex.lab はその仕事をしていないようです) 3) はっきりと対照的なカラー パレットを作成します色 (虹、熱、色など) は、樹状図に多くの葉と色がある場合、すべてが混ざり合っているように見えます。
どんなアドバイスでも大歓迎です!
r - 序列へのクラスタリング結果のオーバーレイ
デンドログラムを特定のレベルの類似性で切り取って生成されたクラスターを、順序付け結果 (NMDS) にオーバーレイする必要があります。私は、この問題に対する明らかな解決策を見つけることなく、ade4 とビーガンを調べてきました。
現在、Primer-e を使用しています (下のスクリーン ショットを参照) が、グラフィックが少し制限されていることがわかりました。正しい方向のポイントは大歓迎です。
r - rの樹状図からx軸ラベルを削除する
xlab = ""を使用してxラベルを抑制しましたが、樹状図に「sub-x-label」が表示されます。これを削除して、樹状図の下の余分なスペースを削除するにはどうすればよいですか?