http://christophergandrud.github.io/networkD3/#sankeynetworkD3
で説明されているパッケージを使用して、R でインタラクティブなサンキー図を作成しようとしています。私のデータは離散状態シーケンス (DSS) の形式です。1 行は 1 つのイベント シーケンスを表します。NA は、シーケンスが終了したことを表します。R でデータのサンプルを再作成する:
x1 <- c('06002100', '06002001', '06001304', '06002100')
x2 <- c('06002100', '06002001', 'NA', 'NA')
x3 <- c('06001304', '06002100', '06002001', 'NA')
test <- as.data.frame(rbind(x1,x2,x3))
networkd3 パッケージには、次のように json 形式のデータが必要です。
URL <- paste0("https://cdn.rawgit.com/christophergandrud/networkD3/","master/JSONdata/energy.json")
上記のサンプル データを必要な形式でキャストすると、次のようになります ( test.json
):
{"nodes":[
{"name":"06002100"},
{"name":"06002001"},
{"name":"06001304"}
],
"links":[
{"source":0,"target":1,"value":3},
{"source":1,"target":2,"value":1},
{"source":2,"target":0,"value":2}
]}
データが上記の形式になったら、次のコードを使用して sankey ネットワークをプロットできます。
library(networkD3)
library(jsonlite)
Energy <- fromJSON(txt = 'test.json') # Load the data
result <- as.data.frame(Energy)
sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source", Target = "target", Value = "value", NodeID = "name", fontSize = 12, nodeWidth = 30)
持っている DSS データを networkD3 で必要な形式に変換したいと考えています。これを行う直接的な方法はありますか?
networkD3 の例のページには、igraph
パッケージを使用して、networkD3 でプロットできるネットワーク グラフ データを作成できることが記載されています。残念ながら、そのための良い例を見つけることができませんでした。