„Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln zusammenführenIch habe oft Datendateien aus verschiedenen Quellen, die ich nach Zeit zusammenführen möchte, aber da sie aus verschiedenen Systemen stammen, unterscheiden sich ihre Zeitstempel nur geringfügig.Wir haben dieses Problem mithilfe von JMPs gelöst KDTable Objekt, das eine wahnsinnig schnelle Suche nach dem nächsten Nachbarn ermöglicht.Durch diese „Fuzzymerge“ wird für jede Zeile in der Haupttabelle die zeitlich am nächsten liegende Zeile in einer zweiten Tabelle gefunden und diese Zeilen in der resultierenden einzelnen Tabelle zusammengefügt.
Ich habe bei meiner Suche in der Community noch ein paar andere Beispiele dafür gefunden, aber keines mit einer grafischen Benutzeroberfläche, um es auch für Nicht-Skripter zugänglich zu machen.
Um dies zu verwenden, führen Sie zunächst das Skript „fn_fuzzymerge_generic“ aus, um die benutzerdefinierte Funktion in JMP zu laden.Führen Sie dann das Skript fuzzymerge_generic_GUI mit geöffneten Datentabellen aus.Vielleicht möchten Sie einen Blick auf die Verteilung der Spalte „Fuzzy Merge Delta“ werfen, die die Differenz zwischen den Zeitspalten der beiden Tabellen für die zusammengeführten Zeilen darstellt.Große Werte weisen darauf hin, dass sich in der Nähe dieser Zeile in der Haupttabelle keine Daten befinden.
Beachten Sie, dass dadurch die nächstgelegene Zeile *in jeder Richtung* gefunden wird, zeitlich vorwärts oder rückwärts.
Hoffe, das hilft jemandem!
Kristo
Explorative DatenanalyseDienstprogrammeBetreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenVielen Dank, das war für unsere Gruppe sehr hilfreich, da wir oft mehrere Dateien mit unterschiedlichen Zeitstempeln kombinieren müssen. Funktioniert perfekt! Ich würde eine Option vorschlagen, die Ergebnisse in einer neuen Tabelle mit einem neuen Namen zu speichern, anstatt die Haupttabelle selbst zu ändern.
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenSie haben also Tabelle A mit einer Zeile pro Sekunde und Tabelle B mit einer Zeile pro Stunde.Wenn Sie dieses Fuzzymerge verwenden und aus Tabelle B (der „Mit“-Tabelle) in A (die Haupttabelle) zusammenführen, werden Sie am Ende für jede Zeile in A die nächstgelegene Zeile in B finden.Es hört sich so an, als wollten Sie es einfach umgekehrt machen: Legen Sie Tabelle B als „Haupttabelle“ und Tabelle A als „Mit“-Tabelle fest. Nennen wir es Tabelle C.Dadurch erhalten Sie die einzelne Schrankreihe in A für jede Reihe in B.Wenn Sie immer noch eine Tabelle mit so vielen Zeilen wie Tabelle A, aber leere Daten für B wünschen, können Sie dann Tabelle->C wieder mit A verbinden, indem Sie den Zeitstempel abgleichen.
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbinden@klk Ich habe eine Tabelle mit Zeitstempeln pro Sekunde und eine andere Tabelle mit einem Zeitstempel jede Stunde. In beiden Spalten wird die Zeit als Stunden angezeigt. Wenn ich die Tabellen mit Ihrem Skript verbinde, wird die zweite Tabelle an mehreren Stellen in der ersten Tabelle abgeglichen, bis ein Delta von 0,5 erreicht ist, und dann würde es mit dem nächsten Zeitstempel übereinstimmen. Am Ende habe ich mehrere Übereinstimmungen statt nur einer einzigen.
Gibt es eine Möglichkeit, ein einzelnes Fuzzy-Match zu erzwingen? vielleicht durch manuelles Definieren eines einzelnen Deltas?
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbinden
@klk Dieses Skript ist großartig!
Ich habe mich gefragt, ob Sie es mit ein paar Artikeln ergänzen könnten:
1. Fügen Sie dem GUI-Fenster eine Schaltfläche zum Abbrechen hinzu
2. Wäre es möglich, den Beitritt nach Gruppe durchzuführen? Beispielsweise könnte es sein, dass ich zwei Zeitreihen habe, die getrennt gehalten werden sollten, und der Reihenname in einer der Spalten zu finden ist.
Danke!!!
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenDanke für das Teilen! Es wäre toll, einen Toleranzfaktor zu haben, damit wir keine Indizes verbinden, die „zu weit“ sind.
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenKristo, ja, ich war genau in dieser Situation, und ich bin mir sicher, dass es vielen Menschen ergangen ist. Ich habe einfach entschieden, dass es zu schwer sein würde, es herauszufinden. Ich freue mich, dass Sie sich die Zeit genommen haben, dieses Skript zu schreiben.
Ich weiß, dass ich bald die Gelegenheit haben werde, es zu nutzen.
Danke
Fiona
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenTolles Drehbuch und gute Unterstützung. Ich mag .
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenFreut mich, dass es hilft!Beachten Sie, dass ich es gerade mit einer kleinen Korrektur aktualisiert habe.
Betreff: „Fuzzymerge“ – Tabellen mit leicht unterschiedlichen Zeitstempeln verbindenSehr schön. Ich habe nach so etwas gesucht. Danke!