Die folgende Frage wurde auf der internen JMP-Benutzer-Community-Seite von P&G gestellt. Weiterleitung an dieses Forum:
Ich habe zwei Tabellen, die ich basierend auf Zeitstempeln verknüpfen möchte. Aufgrund der Datenquelle weisen sie jedoch nicht die gleichen Zeiten auf. Die einzige Option, die ich in JMP finden kann, ist eine exakte Übereinstimmung. Gibt es in JMP eine Option zur Verwendung eines nächstgelegenen Joins, ähnlich wie Pandas Join oder Excel Vlookup funktionieren?
Die P&G JMP User Community hat versucht, einige Antworten zu geben. Gibt es eine bessere Lösung als die, die wir zu empfehlen versucht haben?
Antwort 1:
Beide Tabellen in Excel als separate Blätter löschen, eine Vlookup-Spalte zu Blatt1 hinzufügen, die auf Blatt2 verweist, und dann für die Verknüpfung zurück zu JMP portieren? Ich habe in JMP keine Funktion für die nächste Übereinstimmung gesehen, würde mich aber interessieren, wenn sie existiert ...
Antwort #2:
Die Definitionen von „nächster Verknüpfung“ sind inkonsistent. Meine Erinnerung an VLOOKUP (sofern es nicht geändert wurde) besteht darin, die Zeit X aus der Datentabelle eine sehr lange Lücke, insbesondere wenn die Daten in unregelmäßigen Abständen entweder in Datentabelle X oder Datentabelle Y erfasst werden. Die Möglichkeit unregelmäßiger Abstände kann solche Verbindungen wirklich erschweren.
Leider gibt es in JMP keine schnellen Ansätze, aber Sie können ein paar Dinge ausprobieren.
Ein Ansatz, den ich zuvor versucht habe, besteht darin, einen Spline an wichtige interessierende Messungen anzupassen (mit X-Variable = Zeit), dann die Vorhersageformel zu speichern und in die andere Tabelle zu übertragen. Bei korrekter Durchführung werden dabei im Wesentlichen die kritischen Messungen interpoliert und abgeglichen.
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 die Zeit in Datentabelle X fehlt. Ist dies der Fall, 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 das kritische Maß fehlt oder nicht. Wenn es nicht fehlt, übertragen Sie die kritische Messung, andernfalls verwenden Sie die Verzögerungsfunktion (Zeilenfunktionsgruppe im Formeleditor) für den Namen dieser neuen Formelspalte, um die Beobachtung von einer Zeile nach oben zu senken.
Antwort #3:
In vielen Fällen können Sie eine möglichst große Übereinstimmung erzielen, indem Sie beide Zeitstempel vor dem Zusammenfügen auf die gleiche Weise einteilen (z. B. die Daten nach Sekunden, 10 Sekunden, 1 Minute usw. einteilen). Das funktioniert ganz gut, solange die Zeitstempel nicht „zu unterschiedlich“ sind und man eine gewisse Datenaggregation akzeptieren kann.
Binning ist eine Spaltenfunktion in JMP
Nachtrag des ursprünglichen Fragestellers:
Danke für die Vorschläge. Ich werde die Zusammenführung höchstwahrscheinlich außerhalb von JMP durchführen und dann nach der Kombination eine Analyse durchführen.
Ich bin mir nicht sicher, wie viele andere darauf stoßen, aber dies könnte ein Vorschlag sein, den Sie an JMP weitergeben sollten, um diese Funktion in den Join-Dialog zu integrieren, anstatt zusätzliche Schritte außerhalb davon durchzuführen.
@Peter_Hersh Das habe ich verstanden und ich stimme zu, dass es wahrscheinlich unklug ist, JMP zumindest für Fälle wie diesen als ideale Software zur Datenbereinigung und -bereinigung zu empfehlen. Die Stärke von JMP lag schon immer in der Exploration und Analyse im Vergleich zu ungewöhnlichen Datenanordnungsaufgaben. Zeitbasierte Datenverknüpfungsprobleme lassen sich derzeit am besten außerhalb von JMP in den Codierungssprachen lösen, in denen Sie absichtlich Entscheidungen darüber treffen, was zu tun ist, wenn Sie viele-zu-eins-Zuordnungen oder Zeitangaben haben, die ständig falsch sind usw. Nochmals vielen Dank.
@mjoner Wir planen vorerst nicht, dies zu JMP hinzuzufügen.Die Sorge besteht darin, dass der Wechsel von einer echten Übereinstimmung zu einer Fuzzy-Übereinstimmung für uns im Hinblick auf eine echte Verknüpfung nicht angenehm ist.Die Verwendung von Binning oder sogar das Sortieren der Tabelle nach einem Zeitstempel und die Verwendung von Vergleichsdatentabellen dürften dabei helfen, einige der Herausforderungen zu lösen.
@mjoner , Es gibt eine Problemumgehung mit den Schnellformeln innerhalb der Rechtsklick-Option auf den Formelkopfzeilen.Dadurch können Datum und Uhrzeit auf die nächste Minute, Sekunde 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ß