Einzelzellentabellen-BreakoutIch versuche, die Daten für eine der Unterkomponenten des Geräts zu analysieren, das mein Unternehmen herstellt. Leider werden die eigentlichen Nutzdaten in einer Tabelle gespeichert, die in einer einzigen Zelle in der Datenbank zusammengefasst ist (siehe unten). Gibt es eine Möglichkeit, diese Daten in separate Spalten und Zeilen aufzuteilen und gleichzeitig alle anderen Daten beizubehalten (z. B. allen neuen Datenzeilen dieselbe Seriennummer zuzuweisen)? Das Endziel besteht darin, so etwas wie die folgende Excel-Tabelle zu haben (die ich von Hand erstellen musste :P) mit allen Seriennummern, Stations-IDs usw. Daten für jede Zeile.
Vor:
| StationID | StartdatumUhrzeit | Seriell | FunctionalTestTable |
| 1223 | 1.1.2020 | ASDF1234 | Druck, Durchflusseinstellung, Durchflussvarianz, Durchflusswert, Durchflussergebnis, UUT dP, Schrittposition 11.000,0.00,0.050,0.001,PASS,11.047,-156 10.000,3.00,0.250,3.097,PASS,9.984,-119 10.000,5.00,0.250,4.933,PASS,9.990,-103 10.000,10.00,0.500,9.847,PASS,9.973,-64 10.000.100.00,5.000.101.048,PASS,9.968.525 7.000,3.00,0.250,2.957,PASS,6.983,-114 7.000,5.00,0.250,4.885,PASS,6.988,-95 7.000,10.00,0.500,9.822,PASS,6.990,-48 7.000,80.00,4.000,80.916,PASS,6.981.518 4.000,3.00,0.250,3.078,PASS,3.981,-101 4.000,5.00,0.250,5.110,PASS,3.988,-76 4.000,10.00,0.500,9.980,PASS,3.987,-15 4.000,50.00,2.500,52.123,PASS,3.993.447 |
Nach:
| StationID | StartdatumUhrzeit | Seriell | Druck | Durchflusseinstellung | Flussvarianz | Durchflusswert | Flow-Ergebnis | UUT dP | Schrittpos |
| 1223 | 1.1.2020 | ASDF1234 | 11.000 | 0,00 | 0,050 | 0,001 | PASSIEREN | 11.047 | -156 |
| 1223 | 1.1.2020 | ASDF1234 | 10.000 | 3,00 | 0,250 | 3.097 | PASSIEREN | 9.984 | -119 |
| 1223 | 1.1.2020 | ASDF1234 | 10.000 | 5.00 | 0,500 | 4.933 | PASSIEREN | 9.990 | -103 |
| 1223 | 1.1.2020 | ASDF1234 | 10.000 | 10.00 | 5.000 | 9.847 | PASSIEREN | 9.973 | -64 |
| 1223 | 1.1.2020 | ASDF1234 | 10.000 | 100,00 | 0,250 | 101.048 | PASSIEREN | 9.968 | 525 |
| 1223 | 1.1.2020 | ASDF1234 | 7.000 | 3,00 | 0,250 | 2.957 | PASSIEREN | 6.983 | -114 |
| 1223 | 1.1.2020 | ASDF1234 | 7.000 | 5.00 | 0,250 | 4.885 | PASSIEREN | 6.988 | -95 |
| 1223 | 1.1.2020 | ASDF1234 | 7.000 | 10.00 | 0,500 | 9.822 | PASSIEREN | 6.990 | -48 |
| 1223 | 1.1.2020 | ASDF1234 | 7.000 | 80,00 | 4.000 | 80.916 | PASSIEREN | 6.981 | 518 |
| 1223 | 1.1.2020 | ASDF1234 | 4.000 | 3,00 | 0,250 | 3.078 | PASSIEREN | 3.981 | -101 |
| 1223 | 1.1.2020 | ASDF1234 | 4.000 | 5.00 | 0,250 | 5.110 | PASSIEREN | 3.988 | -76 |
| 1223 | 1.1.2020 | ASDF1234 | 4.000 | 10.00 | 0,500 | 9.980 | PASSIEREN | 3.987 | -15 |
| 1223 | 1.1.2020 | ASDF1234 | 4.000 | 50,00 | 2.500 | 52.123 | PASSIEREN | 3.993 | 447 |
Danke!
David

DatenzugriffBetreff: Ausbruch einer Einzelzellentabelle@Jeff_Perkinson Ich hoffe, Sie haben das in JMP 16 getan ...
Betreff: Ausbruch einer EinzelzellentabelleIch freue mich zu hören, dass die Daten für die Analyse in Form gebracht wurden.
Ja, Sie können ein Skript erstellen, das dies für Sie erledigt. Es wird ein wenig Arbeit erfordern, aber JMP erstellt einen Teil davon für Sie.
Hier ist eine Übersicht, wie es geht.
JMP 15 erfasst den Befehl „Text in Spalten...“ nicht, aber die Syntax lässt sich recht einfach schreiben:
// Text to columns
Data Table( "Community330288.jmp" ) <<
Text to Columns( columns( :FunctionalTestTable ), Delimiters( NEWLINE ) );
Der nächste Schritt ist der Stack-Befehl. JMP fügt die JSL hierfür in einem Skript namens „Source“ in die resultierende Tabelle ein.

Klicken Sie mit der rechten Maustaste darauf und wählen Sie „Bearbeiten“ und Sie erhalten das Skript zum Kopieren und Einfügen:
stacked_data = Data Table( "Community330288.jmp" ) << Stack(
columns(
:FunctionalTestTable 1,
:FunctionalTestTable 2,
:FunctionalTestTable 3,
:FunctionalTestTable 4,
:FunctionalTestTable 5,
:FunctionalTestTable 6,
:FunctionalTestTable 7,
:FunctionalTestTable 8,
:FunctionalTestTable 9,
:FunctionalTestTable 10,
:FunctionalTestTable 11,
:FunctionalTestTable 12,
:FunctionalTestTable 13,
:FunctionalTestTable 14
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :StationID, :StartDateTime, :Serial ))
)
Der nächste Schritt besteht darin, den Text in Spalten mit Komma als Trennzeichen zu wiederholen:
// Text to columns
stacked_data << Text to Columns( columns( :Data ), Delimiters( "," ) );
Eine weitere Sache, die JMP nicht aufzeichnet, ist die Umbenennung von Spalten ab der ersten Zeile der Daten. Das Umbenennen kann per Skript erfolgen, Sie müssen es jedoch selbst schreiben.
Wenn Sie wissen, dass die Anzahl der Spalten immer gleich ist (in diesem Fall 7), können Sie dies fest codieren. Wenn die Anzahl der Spalten variabel ist, müssen Sie etwas mehr Arbeit leisten. Lassen Sie es mich wissen, wenn das der Fall ist. Das ist eine weitere Brücke, über die wir Ihnen helfen können.
for(i=1, i<=7, i++,
column("Data " || char(i))<<SET name=""></SET>
Abschließend müssen Sie die Zeilen auswählen, die Spaltennamen enthalten, und diese löschen. Ich habe den Spaltennamen und den Wert unten fest codiert. Wenn sie variabel sind ... nun, es wird nur etwas mehr Arbeit erfordern.
stacked_data << Select Where( :Pressure == "Pressure" ) << Delete Rows;
Ändern Sie abschließend einige Spalten in numerisch. Sie müssen dies für jede Spalte wiederholen.
:Pressure << set data type(Numeric);
Ich hoffe das hilft.
Halten Sie die Fragen offen.
Betreff: Ausbruch einer EinzelzellentabelleHey Jeff, das hat perfekt funktioniert! Ich habe eine Folgefrage. Gibt es eine Möglichkeit, alle diese Schritte als Skript zu speichern, damit ich sie nicht jedes Mal wiederholen muss, wenn ich diese Daten abrufen muss? Ich habe versucht, es als Sitzungsskript zu speichern, aber das hat den Datenausbruch nicht gespeichert.
Betreff: Ausbruch einer EinzelzellentabelleHallo @dpeyer ,
Hier ist ein Add-In, das Sie zum Importieren der Daten aufrufen können.
Alternativ können Sie das Skript ausführen, um die Textdatei in JMP zu importieren.
Ich habe den Import auf der beigefügten Beispieltextdatei basiert.
Sowohl das Skript als auch das Add-In können aktualisiert werden, um ähnliche Dateien in einer einzigen Datei zu verketten.
Beifall,
Stan
Betreff: Ausbruch einer EinzelzellentabelleHallo Jeff,
Ich habe mit dem zuständigen Testingenieur gesprochen, keine Sorge :P. Leider handelt es sich um 14.000 separate Tabellen mit jeweils einer eigenen Zelle und in jeder Tabelle wiederholten Überschriften. Ich habe ein Bild von 3 (von den 14k...) angehängt. Ich werde Ihre Methode ausprobieren und Ihnen sagen, wie es funktioniert!

Betreff: Ausbruch einer EinzelzellentabelleZunächst einmal: Wer auch immer eine Tabelle wie diese erstellt hat, sollte ... nun ... mir fallen einige angemessene Strafen ein.
Glücklicherweise denke ich, dass JMP die Bewältigung dieses Problems relativ einfach machen wird.
Verwenden Sie zunächst die Spalten -> Dienstprogramme -> Text in Spalten. . als @Mandy_Chambers vorgeschlagen, aber verwenden Sie NEWLINE als Trennzeichen.

Dadurch sollten Sie für jede Zeile in Ihrer FunctionalTextTables-Spalte eine neue Spalte erhalten.

Jetzt benutzen Tabellen->Stapel um alle FunctionalTestTable #-Spalten (z. B. FunctionalTestTable 1, FunctionalTestTable 2 usw.) zu stapeln.

Dadurch erhalten Sie für jede dieser Spalten eine Zeile.

Jetzt können Sie es verwenden Text in Spalten... wieder, dieses Mal mit einem Komma (,) als Trennzeichen.

Jetzt erhalten Sie die Spalten mit den einzelnen Werten.

Jetzt müssen noch die Spaltennamen kopiert und eingefügt werden. Hier ist ein Tipp, der Ihnen dabei helfen soll Spaltennamen haben Sie im Stich gelassen? Versuche dies.Und dann verwenden Cols->Attribute standardisieren , um den Datentyp der Spalten entsprechend in „Numerisch“ zu ändern.
Sie sagten, Sie hätten eine Datenbank mit 14.000 davon. Sind es 14.000 verschiedene Tabellen in der Datenbank oder 14.000 Zeilen einer Tabelle? Hoffentlich Letzteres, denn Sie sollten in der Lage sein, alles über Datei->Datenbank->Tabelle öffnen in eine JMP-Datentabelle zu bringen ...
Wenn es wirklich 14.000 verschiedene Tabellen sind, müssen Sie diese verwenden Tabellen->Verketten um sie alle in einer Tabelle in JMP zusammenzufassen, aber überqueren wir diese Brücke, nachdem Sie bestätigt haben, dass sie sich in der Datenbank befindet.
Trotzdem, Wählen Sie „Übereinstimmende Zellen“ aus ist ein weiteres Tool, das Ihnen beim Aufräumen hilft. Ich werde das in einem Folgebeitrag erklären, nachdem wir ein paar weitere Fortschritte gemacht haben.
Betreff: Ausbruch einer EinzelzellentabelleHmmm ... ich muss nicht beschreiben, was ich richtig zu machen versuche. Ich habe meine ursprüngliche Frage mit einem Vorher/Nachher-Beispiel aktualisiert, um sie besser zu veranschaulichen. Darüber hinaus habe ich eine Datenbank mit 14.000 FunctionalTestTables, für die ich dies tun muss. Daher ist es keine praktikable Option, Text in Spalten umzuwandeln und dann jede einzelne Tabelle zu transponieren.
Ich danke Ihnen für Ihre Hilfe! Ich weiß das wirklich zu schätzen
Betreff: Ausbruch einer Einzelzellentabelle
Betreff: Ausbruch einer EinzelzellentabelleMandy,
Danke für den Hinweis! Kurz bevor ich diese Nachricht gepostet habe, habe ich von dem Dienstprogramm „Text in Spalten“ erfahren, aber dadurch wurden 84 neue Spalten pro Zeile erstellt und die Funktionalität der tabellarischen Daten, die ich verwenden möchte, ging verloren. Ich habe ein Beispiel dafür erstellt, wie die Ausgabe aussehen soll, und es zu meinem ursprünglichen Beitrag hinzugefügt.
Danke!
Betreff: Ausbruch einer EinzelzellentabelleIch glaube, unser Beitrag hat sich gekreuzt. Nachdem Sie also „Text in Spalten“ verwendet haben, verwenden Sie nun „Tables Transpose“ und Sie können die Tabelle umdrehen und die Daten in Spalten übertragen.
Betreff: Ausbruch einer EinzelzellentabelleSie können den Wert wie diesen nehmen, 11.000,0.00,0.050,0.001,PASS,11.047,-156, diese Spalte und verwenden Sie „Spalten“ > „Dienstprogramme“ > „Text in Spalten“, um separate Spalten für die verschiedenen Dinge in dieser Spalte zu erstellen.
Verwenden Sie die Trennzeichen ,-
und das wird Ihnen Spalten wie diese geben:
11.000 0,00 0,050 0,001 PASS .. usw..
Wenn Sie es mehr oder anders aufschlüsseln möchten, können Sie ein anderes Trennzeichen oder Leerzeichen verwenden.
Hoffentlich ist es das, was Sie versucht haben.