Это код для диаграммы Санки, созданной с помощью networkd3 .Я имел успех с Sankeys раньше - я стремлюсь создать что-то вроде этого https://susan -wilson.shinyapps.io / 2016FederalElectionPreferences / (хотя это будет немного более диким из-за природысистема предпочтений Сената), но я не могу понять, в чем моя проблема.Код выполняется без ошибок, и тогда я получаю пустой просмотрщик.
Узлы Source и Target имеют нулевое индексирование и являются последовательными целыми числами.Я знаю, что мог бы просто импортировать ACT, но это всего лишь промежуточный тест, и я планирую использовать весь набор данных позже.Этот код является лишь игрушечным примером и не отображает все потоки предпочтений.
Я почти уверен, что просто делаю глупую ошибку, но я был бы очень признателен, если бы кто-то мог указать на этодля меня.
library(tidyverse)
library(data.table)
library(networkD3)
rm(list = ls())
#Download the data from here: https://results.aec.gov.au/20499/Website/External/SenateDopDownload-20499.zip
files <- list.files("~whereveryousavedit/SenateDopDownload-20499", pattern = ".csv", full.names = T)
SenatePreferences <- lapply(files, fread)
SenatePreferences <- rbindlist(SenatePreferences)
ACT <- SenatePreferences %>%
filter(State == "ACT")
# one node for each politician, while they're still in.
ACT <- ACT %>%
mutate(NameNode = paste(Surname, GivenNm, Count),
Name = paste(Surname, GivenNm)) %>%
group_by(Name) %>%
mutate(Status= case_when(
Status %>% lag() == "Excluded" ~ "Excluded in a previous round",
Status %>% lag() == "Excluded in a previous round" ~ "Excluded in a previous round",
TRUE ~ Status)) %>%
ungroup() %>%
filter(Status !="Excluded in a previous round") %>%
mutate(Node = c(0:(n()-1)))
# For each count i, the source is the round i node, the target is the equivalent node in round 2.
ACT <- ACT %>%
mutate(Source = Node) %>%
group_by(Name) %>%
mutate(Target = Source %>% lead()) %>%
ungroup() %>%
filter(!is.na(Target))
ACT_Sankey <- list(Nodes = ACT %>%
select(NameNode) %>% data.frame(),
Links = ACT %>%
select(Source, Target, VoteTransferred, Name) %>% data.frame()
)
sankeyNetwork(Links = ACT_Sankey$Links , Nodes = ACT_Sankey$Nodes, Source = 'Source',
Target = 'Target', Value = 'VoteTransferred', NodeID = 'NameNode',LinkGroup = 'Name',
fontSize = 12)