Salvataggio tabella dati con colonne trasposteSono stato bloccato nel tentativo di ottenere una tabella di dati per salvare correttamente dopo aver trasposto le colonne. Ho una tabella dati con limiti di specifiche nelle prime tre righe e voglio salvarli in un file separato in modo da poter usare quel file come un file di limiti che viene applicato ai dati grezzi come parte di un grafico di distribuzione dei dati. Ogni volta che apro il file SPEC LIMITS salvato, ha ancora le colonne nel formato non trasposto. Sia la tabella con le colonne non trasposte che la tabella con le colonne trasposte sono aperte sullo schermo:
dt = Open (percorso); // Seleziono il file nel file di dati da aprire. I limiti delle specifiche sono nelle prime 3 righe
x = 3; // Numero di righe che non sono dati grezzi (e hanno limiti di specifiche)
n = N Row (dt); // Ottieni il numero totale di righe nella tabella
Per (i = n, i> x, i--, // Elimina tutte le righe a partire dalla riga 4 fino alla fine della tabella
dt << Elimina righe (i);
n = dt << Ottieni nomi di colonna ();
dt << Transpose (
colonne (n),
Tabella delle uscite ("LIMITI SPEC")
);
: Label << Set Name ("Parameter");
: Riga 1 << Imposta nome ("LSL");
: Riga 2 << Imposta nome ("USL");
: Riga 3 << Imposta nome ("Unità");
dt << Salva ("SPEC LIMIT.jmp"); // Non salva la tabella dati con le colonne della tabella trasposte.
Ho anche provato a salvare la tabella come parte di un'istruzione vicina e ho ottenuto lo stesso risultato:
close (dt, Save ("SPEC LIMIT.jmp"));
Sono certo che c'è una spiegazione facile, ma cosa è necessario per salvare la tabella con le colonne trasposte? Grazie!
Ri: Salvataggio tabella dati con colonne trasposteGrazie per il chiarimento... Darò questo una prova
Ri: Salvataggio tabella dati con colonne trasposte1. @stephen_pearson il codice è un eccellente miglioramento @JensRiege codice. Tuttavia, la fonte del problema con il codice originale, mentre corretta in @stephen_pearson codice, non è stato annotato nel nuovo codice.
Il problema principale con l'errore di salvare il codice, era che la variabile "dt" era usata quando si salvava la tabella dei dati
dt << Save("SPEC LIMITS.jmp");
"dt" punta alla tabella dati originale e quando è stata creata la tabella di dati trasposizione,
dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
apparentemente è stata fatta un'assunzione, che la variabile "dt" ora punta alla nuova tabella di dati.
@stephen_pearson crea correttamente una nuova colonna "dt2" per puntare alla nuova tabella creata da "Transpose" e quindi la usa nella funzione "Salva"
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 />
Il tuo codice originale dovrebbe funzionare, se hai aggiunto l'handle "dt2" al tuo Transpose (), e cambiato il riferimento "dt" sulla tua funzione Salva su "dt2"
Ri: Salvataggio tabella dati con colonne trasposteProva questo:
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) Eliminazione semplificata delle righe
2) Ottieni solo nomi di colonne numeriche. Se ci sono anche colonne di caratteri, la trasposizione fallirà se le colonne di dati hanno tipi di dati diversi
3) Specificare un percorso in cui salvare il file ($ HOME, $ TEMP sono anche opzioni da esplorare). Se non:
Problema I / O.
Impossibile aprire in modalità ReadWrite.
Il sistema non trova il file specificato.
Impossibile salvare il file.