Ho due fonti di dati che devo mettere insieme e creare una tabella principale per l'analisi e il reporting.
Uno è in formato .csv (Resulst 1) e un altro è in formato .xlsx (Results 2). Il file in formato .xlsx mi serve per specificare le singole impostazioni del foglio di lavoro e quale foglio aprire durante l'importazione. Ho visto i seguenti post ma non sono riuscito a farlo funzionare:
https://community.jmp.com/t5/JMP-Scripts/Combine-multiple-txt-or-csv-files/ta-p/24083
https://community.jmp.com/t5/Discussions/How-do-I-get-the-import-file-settings-right-before-concatenating/mp/39286#M22977
Su Risultati 1 devo specificare le colonne da 1 a 3. Su Risultati 2, devo specificare le colonne da 1 a 16 e le righe da 6 a 7 sul foglio Protocollo. Inoltre, dopo aver importato i risultati 2, dovrò quindi trasporre dalla colonna 3 fino alla colonna n (n significa non vuoto), trasponendolo per la colonna 1.
Dovrò quindi unire le tabelle risultanti insieme in base alle colonne corrispondenti.
Qualcuno potrebbe fornire una sceneggiatura per questo o fornire alcuni esempi in modo che io possa risolverlo da solo?
Grazie
Penso che il modo migliore per iniziare con JSL sia utilizzare lo script che JMP genera quando si utilizza l'interfaccia punta e clicca.
Iniziamo con l'importazione dei Risultati 1. Tutto quello che dovresti fare è aprirlo (File> Apri) e la tabella JMP risultante avrà uno script "sorgente". Fare clic con il tasto destro su questo e Modifica per ottenere lo script che eseguirà questa importazione. (Non preoccuparti delle colonne extra di cui non hai bisogno: puoi specificare quelle che ti servono quando ti unisci alle tabelle in un secondo momento.) Il tuo script dovrebbe apparire così ma con il percorso completo del file invece di "C:\.. .".
Open(
"C:\...",
columns(
New Column( "Sample", Character, "Nominal" ),
New Column( "Hour", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Average", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Minimum", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Maximum", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
Per il file Excel puoi usare l'importazione guidata di Excel . È possibile specificare il foglio di lavoro ei numeri di riga in cui iniziano e finiscono i dati. Ancora una volta, puoi quindi ottenere lo script sorgente dalla tabella JMP risultante.
Open(
"C:\...",
Worksheets( "Protocol" ),
Use for all sheets( 0 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 2 ),
Headers Start on Row( 1 ),
Data Starts on Row( 9 ),
Data Starts on Column( 1 ),
Data Ends on Row( 10 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
)
Se metti insieme questi script avrai uno script che importa entrambe le tabelle in JMP, il che è un buon inizio. Una cosa che devi sapere è che devi aggiungere un punto e virgola, ";", alla fine di ogni azione quando hai una sequenza di azioni in uno script.
Un'altra cosa che devi sapere è che vuoi creare riferimenti per le tue tabelle di dati nel tuo script. Potresti dare a ogni tabella un riferimento come dt1, dt2 ...
In questo prossimo bit di script ho modificato l'importazione Results1 per dare alla tabella risultante un riferimento, dt1, e ho aggiunto un punto e virgola alla fine in modo che funzioni quando poi aggiungo lo script per l'azione successiva.
dt1 = Open(
"C:\...",
columns(
New Column( "Sample", Character, "Nominal" ),
New Column( "Hour", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Average", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Minimum", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Maximum", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
Ovviamente c'è altro da fare qui per ottenere la tua soluzione, ma si spera che questo aiuti come punto di partenza.
Fil