1

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 でプロットできるネットワーク グラフ データを作成できることが記載されています。残念ながら、そのための良い例を見つけることができませんでした。

4

1 に答える 1