Ich versuche dem Beispiel des R-Ports von d3Network zu folgen, um ein Sankey-Plot zu erstellen (wie hier angegeben: https://christophergandrud.github.io/networkD3/). Ich lade die folgende Beispiel „Energie“ Daten-Set:NetworkD3 Sankey-Diagramm in R: Wie berechnet man den Wert für jede Verbindung?
# Load energy projection data
URL <- paste0("https://cdn.rawgit.com/christophergandrud/networkD3/",
"master/JSONdata/energy.json")
Energy <- jsonlite::fromJSON(URL)
importieren „Energie“-Datensatz erzeugt zwei neue data.frames; Knoten und Links. das folgende Format einen Blick auf die Links Datennahme zeigt:
head(Energy$links)
source target value
1 0 1 124.729
2 1 2 0.597
3 1 3 26.862
4 1 4 280.322
5 1 5 81.144
6 6 2 35.000
Die Spalte „Quelle“ den Knoten Ursprungs anzeigt, zeigt die Spalte „Ziel“ den Zielknoten, während die Spalte „Wert“ den Wert angibt, jeder einzelne Link.
Obwohl dies konzeptionell ziemlich einfach ist, habe ich enorme Schwierigkeiten, einen Datensatz, mit dem ich arbeite, im selben Format wie der Energy$links
data.frame zu bekommen. Ich konnte meine Daten in folgendem Format bekommen, aber eine vollständige leer bin Zeichnung auf, wie ich es weiter verwandeln könnte:
head(sampleSankeyData, n = 10L)
clientID node1
<int> <chr>
1 23969 1 Community Services
2 39199 1 Youth Justice
3 23595 1 Mental Health
4 15867 1 Community Services
5 18295 3 Housing
6 18295 2 Housing
7 18295 1 Community Services
8 18295 4 Housing
9 15253 1 Housing
10 27839 1 Community Services
Was ich möchte in der Lage sein wird zu tun, um die Anzahl der Unique Clients aggregieren für jeden Link. Zum Beispiel sollte in der obigen Teilmenge von Daten aufgrund des Clients 18295 der Link für "1 Community Services" zu "2 Housing" einen Wert von eins haben (ebenso wie die Links für "2 Housing" zu "3 Housing" "sowie" 3 Gehäuse "bis" 4 Gehäuse "). Daher möchte ich in der Lage sein, die Daten im selben Format wie Energy$links
im Sankey-Diagrammbeispiel zu erhalten.