ggpairs
im Paket GGally
scheint ziemlich nützlich zu sein, aber es scheint fehlzuschlagen, wenn NA
irgendwo im Datensatz vorhanden ist:
Ich sehe keine Dokumentation für den Umgang mit NA
-Werten, und Lösungen wie ggpairs(tips[,1:3], na.rm=TRUE)
(nicht überraschend) ändern die Fehlermeldung nicht.
Ich habe einen Datensatz, in dem vielleicht 10% der Werte NA
sind, die zufällig im gesamten Datensatz verteilt sind. Daher wird na.omit(myDataSet)
einen Großteil der Daten entfernen. Gibt es einen Weg dazu?
Einige Funktionen von GGally
like ggparcoord()
unterstützen die Behandlung von NAs durch missing=[exclude,mean,median,min10,random]
-Parameter. Dies ist jedoch leider nicht für ggpairs()
der Fall.
Was Sie tun können, ist, die NA durch eine gute Schätzung Ihrer Daten zu ersetzen, von denen Sie erwartet haben, dass ggpair()
dies automatisch für Sie erledigt. Es gibt gute Lösungen wie ersetzen sie durch Zeile bedeutet , zeros , median oder sogar nächster Punkt (Beachten Sie 4 Hyperlinks zu den Wörtern des letzten Satzes!).
Ich werde es mit meiner eigenen schrecklichen Problemumgehung versuchen, weil ich denke, dass es Stimulation braucht. Ich stimme OP zu, dass das Ausfüllen von Daten basierend auf statistischen Annahmen oder eines ausgewählten Hacks eine schreckliche Idee für explorative Analysen ist, und ich denke, dass es scheitert, sobald Sie vergessen, wie es funktioniert (etwa fünf Tage für mich) und angepasst werden muss es für etwas anderes.
Haftungsausschluss
Dies ist eine schreckliche Art, Dinge zu tun, und ich hasse es. Es ist nützlich , wenn Sie eine systematische Quelle von NAs haben, die von etwas wie einem spärlichen Sampling eines hochdimensionalen Datasets kommen, das das OP vielleicht hat.
Nehmen wir an, Sie haben eine kleine Teilmenge eines erheblich größeren Datensatzes, wodurch einige Ihrer Spalten spärlich dargestellt werden:
%Vor%Das Beispiel ist hokey, aber täuschen Sie vor, dass die Spalten gleichmäßig von ihren größeren Teilmengen abgetastet werden.
Nehmen wir an, Sie möchten die Daten für alle Kanäle, die mit ggpairs
dargestellt werden sollen, in ein Wide-Format umwandeln. Nun funktioniert ein kanonisches dcast
back-to-wide-Format nicht mehr, mit einer id
-Spalte oder anders, weil die Spaltenbereiche nur spärlich (und niemals vollständig) dargestellt sind:
In diesem Fall ist es offensichtlich, welche id
-Spalte funktionieren würde, weil es ein Spielzeugbeispiel ist ( sample.table[,index:=seq_len(nrow(sample.table)/2)]
), aber es ist im Grunde unmöglich, im Falle eines winzigen einheitlichen Beispiels einer riesigen data.table eine Sequenz von% zu finden. co_de% -Werte, die durch jedes Loch in Ihren Daten führen, wenn sie auf das Formelargument angewendet werden. Dieser Kludus funktioniert:
Wir werden das am Ende benötigen, um sicherzustellen, dass die Bestellung repariert ist.
%Vor%Damit erhalten Sie eine Liste von data.frames für jeden einzelnen Kanal.
%Vor%Es muss einen besseren Weg geben, um sicherzustellen, dass jeder data.frame die gleiche Anzahl an Zeilen hat, aber für meine Anwendung kann ich garantieren, dass sie nur ein paar Zeilen unterscheiden, also schneide ich einfach die überschüssigen Zeilen ab.
%Vor%Damit gelangen Sie zurück zu einer großen Datentabelle mit Kanälen als Spalten.
%Vor%Schließlich binde ich meine kategorische Variable wieder ein. Die Tabellen sollten bereits nach Kategorie sortiert sein, damit diese übereinstimmen. Dies setzt voraus, dass Sie die ursprüngliche Tabelle mit allen Daten haben; Es gibt andere Möglichkeiten, es zu tun.
%Vor%Jetzt ist es plotable mit dem oben genannten.
Soweit ich das beurteilen kann, gibt es keinen Weg mit ggpairs (). Außerdem ist es absolut richtig, nicht mit "falschen" Daten zu füllen. Wenn es sinnvoll ist, hier vorzuschlagen, würde ich eine andere Darstellungsart empfehlen. Zum Beispiel
%Vor%oder mit Code von hier Ссылка