Das Aktualisieren einer JMP-Datentabelle aus einer Tabellenkalkulation leicht gemacht – Teil 1Im Big-Data-Zeitalter möchten wir alle Daten beispielsweise in Datenbanken oder Hadoop-Servern haben oder direkt über Streams darauf zugreifen. Dennoch werden immer noch viele Daten gespeichert oder in Tabellenkalkulationen geschrieben und manuell oder automatisch von Maschinen, Ingenieuren, Labormitarbeitern oder anderen Bedienern aktualisiert. In JMP ist es einfach, beliebige Daten aus einer Tabellenkalkulation in JMP zu importieren. Mithilfe des automatisch generierten „Source“-Skripts können Sie dies sogar ganz einfach automatisieren. Wenn Sie dieses Skript jedoch erneut ausführen, wird eine neue Datentabelle geöffnet und die aktuelle Datentabelle wird nicht aktualisiert.
Normalerweise ist das nicht genau das, was Sie wollen. Warum? Möglicherweise haben Sie bereits einige Daten bereinigt oder neu kodiert. Möglicherweise haben Sie auch einige Analysen in der Datentabelle gespeichert, die Sie später auch für die neuen Daten verwenden möchten. In diesem Artikel zeige ich Ihnen eine Möglichkeit, Ihre aktuelle Datentabelle mit neuen Daten aus einer Kalkulationstabelle zu aktualisieren, wobei die aktuell vorhandenen Zeilen erhalten bleiben und nur die neuen Zeilen aus der Kalkulationstabelle hinzugefügt werden.
Es gibt zwei Szenarien, die ich abdecken möchte:
- In diesem Artikel behandle ich den einfachen Fall vertikal strukturierter Daten. Das heißt, Sie haben eine Zeile mit Spaltennamen und in den anderen Zeilen dahinter befinden sich die Daten.

- In einem zweiter Artikel Ich werde den Fall horizontaler strukturierter Daten behandeln. Das heißt, die erste Zeile/erste Spalte ist der Parametername, in den folgenden Spalten sind die Daten. In der zweiten Zeile stehen die Einheiten, in der dritten Zeile die Chargennummer. Dann eine leere Zeile und danach noch einmal das Gleiche für einen anderen Parameter. Dies ist in einer Tabellenkalkulation leichter zu lesen, aber tatsächlich nicht sehr einfach zu analysieren. Ich sehe diese Art von Daten oft, obwohl es viel besser wäre, den Leuten beizubringen, Daten vertikal einzugeben, als zu versuchen, mit der horizontalen Struktur umzugehen.

Werfen wir also einen Blick auf die Tabellenkalkulationsdaten, es handelt sich um Wetterdaten, die zur Veranschaulichung des Konzepts nur zur Vereinfachung dienen. Im Anhang finden Sie das Skript in der JMP-Datentabelle und die Excel-Tabellen für den ersten Fall.
Beginnen wir mit der Situation
Wir haben bereits eine frühere Version der Tabelle importiert (zu diesem Zeitpunkt 3 Datenzeilen). Jetzt wollen wir die Datentabelle aktualisieren. Im linken oberen Fenster der Datentabelle wird ein Aktualisierungsskript angezeigt. Dieses Skript führt Folgendes aus:
- Greifen Sie auf den Namen der aktuellen Datentabelle und die Anzahl der Zeilen in dieser Datentabelle zu
- Legen Sie den Namen der Tabellenkalkulationsdatei und des Arbeitsblatts fest, von denen wir die neuen Daten erhalten möchten
- Öffnet die Tabelle und liest die Arbeitsblattdaten in eine Hilfedatentabelle ein.
- Wir verlassen uns auf das Quellskript, das beim ersten Import der Daten generiert wurde.
- Aber der Eintrag „Data Starts on Row“ wurde von (2) in (2+n_Rows) geändert, sodass wir nur die Daten erhalten, die wir noch nicht importiert haben
- Jetzt müssen wir nur noch die beiden Tabellen mit der Option „An erste Tabelle anhängen“ verketten.
cdt = Current Data Table();
excelFile = "WeatherData.xlsx";
name_worksheet = "WeatherData"; // or "Sheet1" for this Excel book example
n_Rows = N Rows();
dt_h1 = Open(
excelFile,
Worksheets( name_worksheet ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 + n_Rows ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
),
Invisible
);
cdt << Concatenate (dt_h1, Append to first table);
Close(dt_h1);
Abschluss
Scheint nicht allzu schwierig zu sein. Das Schöne daran ist, dass Sie beispielsweise Datenbereinigungsfunktionen wie Neucodieren verwenden und sie als Formelspalte speichern können und die neuen Daten automatisch verarbeitet werden. Oder Sie haben ein Vorhersagemodell mit den vorherigen Daten erstellt, die Vorhersageformel wieder in der Datentabelle gespeichert und sehen sich die Vorhersagen für die neuen Daten an (und vergleichen sie beispielsweise mit einem neuen Modell oder den tatsächlich vorhergesagten Daten). Ich bin mir sicher, dass Sie viele Anwendungsfälle finden werden, und hoffe, dass dies für Sie nützlich sein wird.
Natürlich können Sie dies nutzen und erweitern, indem Sie den Daten Analysen hinzufügen, z. B. ein Kontrolldiagramm aktualisieren oder andere Trendanalysen durchführen. Mithilfe des Windows-Planers möchten Sie dann möglicherweise Ihren Bericht aktualisieren und an unser neues Produkt senden JMP Live , sodass andere Personen (nicht unbedingt lizenzierte JMP-Benutzer) mit der Interaktivität von JMP wie Datenfilter, Spaltenumschalter usw. in einem Webbrowser auf die Berichte zugreifen können.
Was Sie als nächstes erwartet
In meinem nächsten Beitrag werde ich über den zweiten Fall sprechen, der etwas anders, aber nicht viel schwieriger ist.
Mich würde interessieren, ob Sie ein solches Problem haben oder wie Ihre Daten strukturiert sind (in Tabellenkalkulationen). Bitte hinterlassen Sie Ihre Kommentare.
Alles Gute,
Martin
PS: Zwei Kommentare zu den Dateien:
- In WeatherData.jmp finden Sie ein Skript zum Aktualisieren der Datentabelle mit der angehängten Excel-Datei. Beide Dateien müssen im selben Ordner gespeichert werden (dies dient der Einfachheit, Sie können den fest codierten Dateinamen einfach ändern, z. B. mit Pick File(), und auch den Namen extrahieren.
- Das zweite Skript ist „Letzte zwei Zeilen entfernen“, das es ermöglicht, Zeilen in der Datentabelle zu entfernen, um sie erneut aus der Excel-Tabelle zu aktualisieren, ohne die Zeilen manuell löschen zu müssen. Also alles für Ihre Bequemlichkeit


Aktualisieren Sie Ihre aktuelle JMP-Datentabelle mit neuen Daten von einem ( Vertikale Strukturierte) Tabellenkalkulation, wobei Ihre vorgenommenen Änderungen in der aktuellen Datentabelle erhalten bleiben.
- Teil 1Betreff: Aktualisieren einer JMP-Datentabelle aus einer Tabellenkalkulation leicht gemacht – Teil 1Hallo Hogi,
Dies wäre eine Option, wenn Sie keine Änderungen an Ihren bisherigen Daten vornehmen. Beispielsweise haben Sie möglicherweise bereits einige Qualitätsprüfungen Ihrer Daten durchgeführt und Daten geändert oder ausgeschlossen oder zusätzliche Kommentare abgegeben oder was auch immer. Sobald Sie etwas geändert haben, werden durch diese Art des Anhängens der Daten alle Ihre Änderungen gelöscht, was normalerweise nicht erwünscht ist.
Betreff: Aktualisieren einer JMP-Datentabelle aus einer Tabellenkalkulation leicht gemacht – Teil 1Ein anderer Ansatz:
1) Laden Sie die neuen Daten über Quelle Skript
2) Entfernen Sie alle Zeilen aus der Haupttabelle
3) Hängen Sie die neuen Daten per Verkettung an
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Betreff: Aktualisieren einer JMP-Datentabelle aus einer Tabellenkalkulation leicht gemacht – Teil 1Hallo Hogi, vielen Dank für deine zusätzlichen Optionen, sehr schön.
und du hast recht:
„Haupttabelle mit Daten aus der zweiten Tabelle aktualisieren“ verwendet nur die Spalten in der aktuellen Tabelle und aktualisiert die Spalten, wenn die Spaltennamen übereinstimmen. Es werden keine der anderen Spalten aus der zweiten Tabelle hinzugefügt.
„Spalten mit demselben Namen zusammenführen“ führt auch leere Stellen mit den Daten in ähnlich benannten Spalten zusammen/überschreibt/füllt sie. Es werden aber auch die anderen Spalten der zweiten Tabelle hinzugefügt.
Für die erste könnte man auch die Funktion „Tabellen->Aktualisieren“ verwenden, insbesondere wenn man mit dieser Operation keine neue Datentabelle erstellen, sondern die bestehende mit Daten aus der zweiten aktualisieren möchte.
Mir ist nicht bewusst, dass es sonst noch einen Unterschied gibt.
Betreff: Aktualisieren einer JMP-Datentabelle aus einer Tabellenkalkulation leicht gemacht – Teil 1Ich habe mich nur gefragt, was der Unterschied zwischen „ Aktualisieren Sie die Haupttabelle mit Daten aus der zweiten Tabelle " Und " Spalten mit demselben Namen zusammenführen " - hier machen sie genau das Gleiche, oder?

Nach einigem Herumtüfteln habe ich einen Unterschied bei der Verwendung einer zweiten Tabelle mit zusätzlichen Spalten festgestellt:
- " Aktualisieren Sie die Haupttabelle mit Daten aus der zweiten Tabelle " Aktualisierung die Haupttabelle (von Zusammenführen gleichnamiger Spalten ), keine zusätzlichen Spalten
- " Spalten mit demselben Namen zusammenführen " tut das Dasselbe , fügt aber zusätzlich die neuen Spalten aus der zweiten Tabelle hinzu.
Gibt es weitere Unterschiede?
Betreff: Aktualisieren einer JMP-Datentabelle aus einer Tabellenkalkulation leicht gemacht – Teil 1Alternativ kann man auch die Join-Plattform nutzen ...
Laden Sie zunächst beide Tabellen:
Open( "$DOWNLOADS/WeatherData.jmp" );
Open( "$DOWNLOADS/WeatherData.xlsx", Worksheets( "Backup_NewData" ), );
Dann ist es am einfachsten, sie „nach Zeilennummer“ zusammenzufügen:
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Row Number
);
Alternativ ist die Datum Mithilfe der Spalte können einzelne Einträge unabhängig von der Zeilennummer identifiziert werden.
Dies ermöglicht eine robustere Möglichkeit, die Tabellen über zu verbinden Spalten anpassen :
(Hinweis: Aufgrund des Zeitversatzes von 1 Minute werden der 15. und 16. Oktober zweimal angezeigt.)
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Matching Columns( :Date = :Date ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 )
)
Betreff: Einfaches Aktualisieren einer JMP-Datentabelle aus einer Kalkulationstabelle – Teil 1@martindemel , Sie haben oben erwähnt:
Für Ersteres könnte man auch die Funktion Tabellen->Aktualisieren verwenden, insbesondere wenn man mit dieser Operation keine neue Datentabelle erstellen, sondern die vorhandene mit Daten aus der Zweiten aktualisieren möchte.
Genau das möchte ich tun, aber „Aktualisieren“ bietet keine Option zum Hinzufügen von Zeilen aus der neuen Tabelle, sondern aktualisiert nur vorhandene Daten. Und „Verbinden“ bietet keine Option, KEINE neue Datentabelle zu erstellen. Das ist sehr frustrierend, da ich diese Datentabelle mit einem virtuellen Join verwende und dieser virtuelle Join-Link mit der neuen Datentabelle nicht mehr funktioniert.
Ich habe einen entsprechenden Eintrag in meiner JMP-Wunschliste gefunden: Tabellen verknüpfen: Option zum Aktualisieren der Haupttabelle . Bitte bewerten Sie den Eintrag positiv, wenn Sie dies in JMP implementiert sehen möchten.