Die folgende Frage wurde auf der internen Seite der JMP-Benutzergemeinschaft von P&G gestellt. Weitergabe an dieses Forum:
Ich habe zwei Tabellen, denen ich basierend auf Zeitstempeln beitreten möchte. Aufgrund der Datenquelle haben sie jedoch nicht die gleichen Zeiten. Die einzige Option in JMP, die ich finden kann, ist eine genaue Übereinstimmung. Gibt es in JMP eine Option, um eine nächste Verknüpfung zu verwenden, ähnlich wie Pandas Join oder Excel Vlookup funktioniert?
Die P&G JMP User Community hat versucht, einige Antworten zu geben. Gibt es eine bessere Lösung als die, die wir versucht haben zu empfehlen?
Antwort 1:
Legen Sie beide Tabellen in Excel als separate Blätter ab, fügen Sie eine Vlookup-Spalte zu Blatt1 hinzu, die auf Blatt2 verweist, und portieren Sie dann für die Verbindung zurück zu JMP? Ich habe in JMP keine Nearest-Match-Funktion gesehen, würde mich aber interessieren, ob es eine gibt ...
Antwort #2:
Definitionen von "nächster Verbindung" sind inkonsistent. Meine Erinnerung an SVERWEIS (sofern es nicht geändert wurde) besteht darin, die Zeit X aus der Datentabelle X zu nehmen und sie mit der nächstgelegenen Zeit Y aus der Datentabelle Y abzugleichen, sodass X<=Y (oder Y<=X), was manchmal sein kann eine sehr lange Lücke, insbesondere wenn die Daten in unregelmäßigen Abständen entweder in der Datentabelle X oder in der Datentabelle Y gesammelt werden. Die Möglichkeit unregelmäßiger Intervalle kann Verbindungen wie diese wirklich erschweren.
Leider gibt es in JMP keine schnellen Ansätze, aber es gibt ein paar Dinge, die Sie ausprobieren können.
Ein Ansatz, den ich zuvor versucht habe, besteht darin, einen Spline an kritische Messwerte von Interesse anzupassen (mit X-Variable = Zeit), dann die Vorhersageformel zu speichern und in die andere Tabelle zu übertragen. Wenn dies richtig gemacht wird, interpoliert dies im Wesentlichen die kritischen Messungen und passt sie an.
Eine andere Möglichkeit besteht darin, einen vollständigen Join durchzuführen (Zeitstempel stimmen nicht überein) und dann eine Formelspalte zu erstellen, um zu prüfen, ob Zeit in Datentabelle X fehlt; Wenn dies der Fall ist, verwenden Sie die Zeit aus Datentabelle Y, andernfalls verwenden Sie die Zeit aus Datentabelle X. Sortieren Sie dann nach dieser neuen Zeitspalte. Erstellen Sie dann Formeln für jede kritische Messung von Interesse. Überprüfen Sie in diesen Formeln, ob die kritische Messung fehlt oder nicht. Wenn es nicht fehlt, bringen Sie die kritische Messung herüber, und verwenden Sie andernfalls die Lag-Funktion (Zeilenfunktionsgruppe im Formeleditor) gegen den Namen dieser neuen Formelspalte, um die Beobachtung von einer Zeile nach oben zu senken.
Antwort Nr. 3:
In vielen Fällen können Sie eine nächste Übereinstimmung erstellen, indem Sie beide Zeitstempel auf die gleiche Weise klassifizieren (z. B. die Daten nach Sekunden, 10 Sekunden, 1 Minute ... klassifizieren), bevor Sie sie zusammenführen. Dies funktioniert ganz gut, solange die Zeitstempel nicht "zu unterschiedlich" sind und Sie eine gewisse Datenaggregation akzeptieren können.
Binning ist eine Spaltenfunktion in JMP
Follow-up vom ursprünglichen Fragesteller:
Danke für die Vorschläge. Ich werde höchstwahrscheinlich die Verknüpfung außerhalb von JMP durchführen und dann nach dem Kombinieren eine Analyse durchführen.
Ich bin mir nicht sicher, wie viele andere darauf stoßen, aber dies könnte ein Vorschlag sein, an JMP weiterzugeben, damit diese Funktion in den Join-Dialog integriert wird, anstatt zusätzliche Schritte außerhalb davon.
@mjoner , Es gibt eine Problemumgehung mit den schnellen Formeln in der Rechtsklick-Option in den Formelkopfzeilen.Dadurch können Datum und Uhrzeit auf die nächste Minute, Sekunden und fünf Sekunden gerundet werden.Ich weiß, dass dies nicht so praktisch ist wie ein Fuzzy-Match, aber es ist eine andere Option.Ich werde dafür sorgen, dass die Entwicklung Bescheid weiß