2016-06-14 3 views
2

私はRを初めて使い、サンプルデータを使ってrChartsを使ってSankey Diagramを作成しようとしています。RのSankey Diagramにどのようなデータを入力しますか?

私はthis codeを実行しました。これは意図したとおりに動作します。しかし、ソースコード、ターゲットコード、値ベクトルでコードを編集すると、Rがクラッシュし、ダイアグラムが生成されません。

:ここでは、私は自分のデータを使用して製造しました小さな例ですが、明確にするために

target <- c('1', '1', '1', '1', '2', '2', '2', '3', '3', '3', '4', '4', '4', '4', '4', '5', '5', '5', '5') 

source <- c('2', '3', '4', '5', '1', '3', '4', '2', '3', '4', '1', '2', '3', '4', '5', '1', '2', '4', '5') 

value <- c(1, 2, 2, 1, 1, 1, 4, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2) 

:ここ

は、私は上記の例のソース、ターゲット、および値の代わりに入ろうとしてるものです
source <- c('2', '5', '5') 
target <- c('4', '2', '5') 
value <- c(1, 1, 1) 

これもクラッシュします。 Sankey Diagramsについての私の理解は、 '2'が '4'に流れ、 '5'が同じ厚さの線で '2'と '5'に流れるチャートを生成するはずです。

私が見た他の例と同じ書式を使用しようとしたため、データ自体に問題があると仮定しています。もし誰かが私のここでの理解に間違っていることを説明できたら、それは大いに感謝しています!

答えて

1

これもクラッシュします。

自己ループ5から5のためクラッシュしますが、これは意味をなさないものです。名前5のノードは、ソース側またはターゲット側のいずれかになければなりません。サンキーダイアグラムの私の理解は、この が「2」「4」に流れ、そして「5」に等しい厚さの行と「2」 と「5」に流れる。グラフを生成しなければならないということである

You could do e.g. 

source <- c('2', '2', '5') 
target <- c('4', '5 ', '5 ') 
value <- c(1, 1, 1) 
df <- cbind.data.frame(source, target, value) 
library(rCharts) 
sankeyPlot <- rCharts$new() 
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey') 
sankeyPlot$set(
    data = df, 
    nodeWidth = 10, 
    nodePadding = 15, 
    width = 300, 
    height = 300 
) 
sankeyPlot 

お知らせターゲットベクトルでソースと5の5の間にわずかな違い...

+0

ありがとうございました!私はリンクした例を描き、昨日私の間違いを認識しました。私はターゲットベクトルの変数の名前を変更することでそれを解決することができましたが、あなたのバージョンがより好きです。 –

関連する問題