Ich bin mir nicht sicher, warum dcast () aus diesem Datensatz Variablen entfernt

Ich habe einen Datenrahmen, der wie folgt aussieht:

   id fromuserid touserid from_country to_country length
1   1   54525953 47195889           US         US      2
2   2   54525953 54361607           US         US      1
3   3   54525953 53571081           US         US      2
4   4   41943048 55379244           US         US      1
5   5   47185938 53140304           US         PR      1
6   6   47185938 54121387           US         US      1
7   7   54525974 50928645           GB         GB      1
8   8   54525974 53495302           GB         GB      1
9   9   51380247 45214216           SG         SG      2
10 10   51380247 43972484           SG         US      2

Jede Zeile beschreibt eine Anzahl von Nachrichten (Länge), die von einem Benutzer an einen anderen Benutzer gesendet wurden.

Ich möchte eine Visualisierung (über ein Akkorddiagramm in D3) der Nachrichten erstellen, die zwischen den einzelnen Ländern gesendet werden.

Es gibt fast 200 Länder. Ich benutze die Funktion dcast wie folgt:

countries <- dcast(chats,from_country ~ to_country,drop=FALSE,fill=0)

Dies hat bei mir zuvor funktioniert, als ich einen kleineren Datensatz und weniger Variablen hatte, dieser Datensatz jedoch mehr als 3 Millionen Zeilen umfasst und sozusagen nicht einfach zu debuggen ist.

Was ich jetzt jedenfalls bekomme, ist eine Matrix, die nicht quadratisch ist, und ich kann nicht herausfinden, warum nicht. Was ich erwarte, ist im Wesentlichen eine Matrix, in der die(i,j)th Zelle stellt die Nachrichten dar, die von gesendet wurdencountry i zucountry j. Was ich am Ende habe, ist etwas sehr Nahes, aber einige Zeilen und Spalten fehlen offensichtlich, was leicht zu erkennen ist, da US-> US-Nachrichten um eine Zeile oder Spalte verschoben angezeigt werden.

Also hier ist meine Frage. Gibt es irgendetwas, was ich tue, das offensichtlich falsch ist? Wenn nicht, gibt es etwas "Seltsames", nach dem ich im Datensatz suchen sollte, um dies zu klären?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage