1

この構造を R でプロットする必要があります。

(1000) Diseases of the genitourinary system 
    (1580) Nephritis, nephrotic syndrome, and nephrosis 
        (580) Acute glomerulonephritis
            (580.9) Glomerulonephritis, acute, unspec.
        (581) Nephrotic syndrome
            (581.9) Nephrotic syndrome, unspec.
        (582) Chronic glomerulonephritis
            (582.9) Glomerulonephritis, chronic, unspec.
        (583) Nephritis and nephropathy, not specified as acute or chronic
        (584) Acute renal failure
            (584.5) Renal failure, acute w/ tubular necrosis

上記の構造のRを使用して、ノード、接続、およびラベルを持つ素敵なjpg / pdf /(またはその他)として。GrafViz のインストールが必要なライブラリを調べましたが、運がなかったので、ネイティブ ソリューション (たとえば、ggplot2 を使用) が最適です。igraph を使用してコードをまとめることができませんでした。また、教科書ベースの基礎を持たないRのグラフィックスも初めてです。ヒントやアドバイスをいただければ幸いです。

上記の構造は一例です。他の構造には、プロットして非常に大きな PDF/ポスターとして印刷する 50 以上の概念がある場合があります。プロットは静的です (マウスを使用した操作はありません)。

4

1 に答える 1

1

これが答えの努力です。これは必要なものの概算であり、最終的な結果は次のようになります。

用語ツリー

私はこれを作成しましたがigraph、コードはあなたが説明したタイプのデータのシミュレーションを使用しています。

library("igraph")

vertex.df <- read.table(text = "id    code  name
0   1000    'Diseases of the genitourinary system '
1   1580    'Nephritis, nephrotic syndrome, and nephrosis '
2   580 'Acute glomerulonephritis'
3   580.9   'Glomerulonephritis, acute, unspec.'
4   581 'Nephrotic syndrome'
5   581.9   'Nephrotic syndrome, unspec.'
6   582 'Chronic glomerulonephritis'
7   582.9   'Glomerulonephritis, chronic, unspec.'
8   583 'Nephritis and nephropathy, not specified as acute or chronic'
9   584 'Acute renal failure'
10  584.5   'Renal failure, acute w/ tubular necrosis'",
                        header = TRUE,
                        stringsAsFactor = FALSE)

vertex.df$code <- as.character( vertex.df$code )

edge.df <- read.table(text = "from    to
0    1
1   2
1   4
1   6
1   8
1   9
2   3
4   5
6   7
9   10",
                      header = TRUE)

edges <- matrix(c(edge.df$from, edge.df$to), nc=2)

g <- graph.empty()
g <- add.vertices(g, nrow(vertex.df),
                  id=vertex.df$id, 
                  code=vertex.df$code, 
                  name=vertex.df$name)
g <- add.edges(g, t(edges))


plot(g, 
     layout = layout.kamada.kawai,
     vertex.label = V(g)$code,
     vertex.size = 35,
     vertex.color = "white",
     vertex.label.family = "sans")

ICD コードを頂点ラベルとして使用します。これは、この縮尺でプロットすると、病名の長いテキストが乱雑に見えるためです。

プロットするとき、ICD コードの代わりに疾患名が必要な場合は、vertex.labelパラメータを に変更できます。V(g)$name大きなpdfに印刷して頂点のアウトラインを削除すると、見栄えの良いツリーが得られるのではないかと思います。?igraph.plotting変更できるパラメータの詳細については、 を参照してください。

実験のステップアップに役立つことを願っています。

于 2012-05-26T12:15:03.553 に答える