Как исправить ошибку Sankey Diagram "во многих измерениях", используя networkD3 в R? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать диаграмму Санки, используя networkD3 на RStudio.

Я загрузил свои данные в виде файла JSON, который затем импортировал в студию, и в файле на рабочем столе выглядит так:

 {"nodes":[
 {"name":"Hypertension"},
 {"name":"Diabetes"},
 {"name":"smoking"},
 {"name":"Hypercholesterolemia"},
 {"name":"Obesity"},

 {"name":"Hypertension"},
 {"name":"Diabetes"},
 {"name":"smoking"},
 {"name":"Hypercholesterolemia"},
 {"name":"Obesity"},

 {"name":"Hypertension"},
 {"name":"Diabetes"},
 {"name":"smoking"},
 {"name":"Hypercholesterolemia"},
 {"name":"Obesity"},

 {"name":"Hypertension"},
 {"name":"Diabetes"},
 {"name":"smoking"},
 {"name":"Hypercholesterolemia"},
 {"name":"Obesity"},

 {"name":"Hypertension"},
 {"name":"Diabetes"},
 {"name":"smoking"},
 {"name":"Hypercholesterolemia"},
 {"name":"Obesity"}
 ]}


 {"links":[
 {"source":0,"target":5,"value":0.654},
 {"source":5,"target":10,"value":0.633},
 {"source":10,"target":15,"value":0.602},
 {"source":15,"target":20,"value":0.561},

 {"source":1,"target":6,"value":0.359},
 {"source":6,"target":11,"value":0.316},
 {"source":11,"target":16,"value":0.26},
 {"source":16,"target":21,"value":0.187},

 {"source":2,"target":7,"value":0.171},
 {"source":7,"target":12,"value":0.156},
 {"source":12,"target":17,"value":0.142},
 {"source":17,"target":22,"value":0.128},

 {"source":3,"target":8,"value":0.171},
 {"source":8,"target":13,"value":0.156},
 {"source":13,"target":18,"value":0.142},
 {"source":18,"target":23,"value":0.128},

 {"source":4,"target":9,"value":0.171},
 {"source":9,"target":14,"value":0.156},
 {"source":14,"target":19,"value":0.142},
 {"source":19,"target":24,"value":0.128}
 ]}

При импорте в Rstudio начало выглядит отличается, и я не уверен, если это является частью проблемы (фотография прилагается) 1

С кодом, основанным на коде SankeyDiagram, найденном на этом форуме и других, я сделал:

install.packages('curl')
 install.packages("networkD3")
 library(networkD3)
 Energy<- read.csv2("~/Desktop/Energy.json", sep="") 

Когда я загрузил свои данные

Далее, когда я столкнулся с некоторыми проблемами в Интернете, следующие шаги будут

head(Energy$nodes) 
head(Energy$links)

Ни один из них не работает, и вместо этого R заставляет меня делать

head(Energy$X..nodes...)

, который работает, но опять же не при попытке ссылки.

Кроме того, мой окончательный код должен выглядеть примерно так, если inte rnet правильный:

networkD3::sankeyNetwork(Links = energy$X..links.., Nodes = Energy$X..nodes..., Source ="source", Target = "target", Value = "value", NodeID = "Name", units = "TWh", fontSize = 12, nodeWidth = 30)

однако я получаю следующую ошибку:

 Error in `[.default`(Links, , Source) : incorrect number of dimensions

Буду признателен за любую помощь! Я также приложил изображение диаграммы Санки, которое я пытаюсь имитировать c! 2

...