Speichern der Datentabelle mit transponierten SpaltenIch habe versucht, eine Datentabelle zu erhalten, um korrekt zu speichern, nachdem ich die Spalten transponiert habe. Ich habe eine Datentabelle mit Spezifikationsgrenzwerten in den ersten drei Zeilen, und ich möchte sie in einer separaten Datei speichern, sodass ich diese Datei als Grenzwertdatei verwenden kann, die auf die Rohdaten als Teil eines Datenverteilungsplots angewendet wird. Jedes Mal, wenn ich die gespeicherte SPEC LIMITS-Datei öffne, werden die Spalten immer noch im nicht transponierten Format angezeigt. Sowohl die Tabelle mit den nicht transponierten Spalten als auch die Tabelle mit den transponierten Spalten sind auf dem Bildschirm geöffnet:
dt = offen (Pfad); // Ich wähle die zu öffnende Datei aus. Spezifikationsgrenzen liegen in den ersten 3 Zeilen
x = 3; // Anzahl der Zeilen, bei denen es sich nicht um Rohdaten handelt
n = N Zeile (dt); // Gesamtanzahl der Zeilen in der Tabelle abrufen
Für (i = n, i> x, i--, // Löschen Sie alle Zeilen ab Zeile 4 bis zum Ende der Tabelle
dt << Zeilen löschen (i);
n = dt << Spaltennamen abrufen ();
dt << Transponieren (
Spalten (n),
Ausgabetabelle ("SPEC LIMITS")
);
: Label << Set Name ("Parameter");
: Zeile 1 << Set Name ("LSL");
: Zeile 2 << Set Name ("USL");
: Zeile 3 << Set Name ("Units");
dt << Save ("SPEC LIMITS.jmp"); // speichert keine Datentabelle mit umgelagerten Tabellenspalten
Habe auch versucht, die Tabelle als Teil einer Close-Anweisung zu speichern und dasselbe Ergebnis zu erhalten:
close (dt, Save ("SPEC LIMITS.jmp"));
Ich bin sicher, dass es eine einfache Erklärung gibt, aber was ist nötig, um die Tabelle mit den umgesetzten Spalten zu speichern? Vielen Dank!
Betreff: Speichern der Datentabelle mit transponierten SpaltenDanke für die Klarstellung... Ich werde es versuchen
Betreff: Speichern der Datentabelle mit transponierten Spalten1 @stephen_pearson Code ist eine hervorragende Verbesserung gegenüber @JensRiege Code. Die Ursache des Problems mit dem ursprünglichen Code wurde jedoch in korrigiert @stephen_pearson Code, wurde im neuen Code nicht kommentiert.
Das Hauptproblem beim Speichern des Codes war, dass beim Speichern der Datentabelle die Variable "dt" verwendet wurde
dt << Save("SPEC LIMITS.jmp");
"dt" zeigt auf die ursprüngliche Datentabelle, und wenn die Transponierungsdatentabelle erstellt wurde,
dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
anscheinend wurde angenommen, dass die Variable "dt" nun auf die neue Datentabelle verweisen würde.
@stephen_pearson erstellt korrekt eine neue Spalte "dt2", die auf die durch "Transpose" erstellte neue Tabelle verweist, und verwendet sie dann in der Funktion "Speichern"
dt2 = dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
:Label << Set Name( "Parameter" );
:Row 1 << Set Name( "LSL" );
:Row 2 << Set Name( "USL" );
:Row 3 << Set Name( "Units" );
dt2 << Save("$DESKTOP\SPEC LIMITS.jmp");<BR /><BR />
Ihr ursprünglicher Code sollte funktionieren, wenn Sie Ihrem Transpose () das Handle "dt2" hinzugefügt und die Referenz "dt" in Ihrer Save-Funktion in "dt2" geändert haben.
Betreff: Speichern der Datentabelle mit transponierten SpaltenVersuche dies:
dt = currentdatatable(); // I select the file to data file to open. Spec limits are in first 3 rows
x = 3; // Number of rows that are not raw data (and have spec limits)
dt << select where(Row()>x);
dt << delete rows;
n = dt << Get Column Names("Numeric");
dt2 = dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
:Label << Set Name( "Parameter" );
:Row 1 << Set Name( "LSL" );
:Row 2 << Set Name( "USL" );
:Row 3 << Set Name( "Units" );
dt2 << Save("$DESKTOP\SPEC LIMITS.jmp"); // Save data table with table columns transposed.1) Vereinfachtes Löschen der Zeilen
2) Erhalten Sie nur numerische Spaltennamen. Wenn Zeichenspalten vorhanden sind, schlägt die Transponierung fehl, wenn Datenspalten unterschiedliche Datentypen haben
3) Geben Sie einen Ort an, an dem die Datei gespeichert werden soll ($ HOME, $ TEMP sind auch Optionen, die untersucht werden sollen). Wenn Sie nicht:
I / O-Problem
Kann nicht im ReadWrite-Modus geöffnet werden.
Die angegebene Datei wurde vom System nicht gefunden.
Datei kann nicht gespeichert werden.