Script JMP per impilare dalla colonna 2-infinito da una tabella Excel con aggiornamento settimanaleHo una tabella Excel che sto aggiornando manualmente su base settimanale. Successivamente, apro questa tabella in JMP e impila ogni colonna dalla colonna 2 in poi. Con ogni aggiornamento settimanale, aggiungo più colonne alla tabella iniziale. Di recente ho frequentato una lezione di introduzione alla classe di script JMP e sto cercando di automatizzare un po' questo processo invece di impilarlo nuovamente da zero ogni volta.
Ecco come appare la tabella in JMP prima di eseguire lo Stack:

So come importare la tabella Excel in JMP tramite uno script in questo modo:
Open(
"Drive:\Folder\File.xlsx",
Worksheets( "Data" ), // etc.
Ma dove ho avuto una domanda è come posso modificare lo script JMP per chiedergli di impilare le colonne 2 fino alla fine?
Ho quanto segue dall'esecuzione di uno Stack manuale in JMP e dall'esame dello script sorgente:
Data Table( "Data" ) << Stack(
columns(
:Name( "8/23/2021" ),
:Name( "08/30/2021" ),
:Name( "09/06/2021" ),
:Name( "09/13/2021" ),
:Name( "09/20/2021" ) // etc.
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);
e ho il framework di una funzione For( che posso usare:
For( c = 2, i <= N Col(), c++,
//body//ma non so proprio come metterli insieme. Sta inserendo il comando Stack( all'interno del comando For( in qualche modo?
Grazie a chiunque possa aiutare!
Tabella datiSceneggiaturaRi: script JMP per impilare dalla colonna 2-infinito da una tabella Excel con aggiornamento settimanalePenso che con la piattaforma Stack puoi semplicemente usare l'elenco di colonne nell'argomento columns()
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols_to_stack = {"NPN1", "PNP1", "PNP2"};
dt_stacked = dt << Stack(
columns(cols_to_stack),
Source Label Column("Label"),
Stacked Data Column("Data"),
Drop All Other Columns(1)
);Quindi ottieni un elenco di nomi di colonna che hai dal datatable che crei dal file excel usando << Ottieni nomi colonna (stringa), quindi rilascia la prima colonna con Rimuovi da()
Names Default To Here(1);
dt = Open(
"$SAMPLE_IMPORT_DATA/Team Results.xlsx",
Worksheets("Ungrouped Team Results"),
Worksheet Settings(Headers Start on Row(3), Data Starts on Row(4))
);
//all columns
col_names = dt << Get Column Names("String");
//drop first column
Remove From(col_names, 1);
//stack with remaining, won't work exactly like this with this example data, as data types aren't same
//dt_stacked = dt << Stack(...)Vedere la Guida / Indice degli script e cercare le diverse funzioni utilizzate qui.
Ri: script JMP per impilare dalla colonna 2-infinito da una tabella Excel con aggiornamento settimanaleEcco un modo per gestirlo.A proposito, non è stato possibile aprire la tabella dei dati di esempio, quindi ne ho aggiunta una mia.
names default to here(1);
dt=data table("Example");
colNames = dt << get column names();
remove from(colNames, 1, 2 );
dt << Stack(
columns( colNames
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);