Come creare uno script generale/variabile per dividere una tabella di dati ed eseguire calcoli?Eseguo regolarmente la stessa manipolazione e calcolo della tabella dati e sono interessato ad automatizzarlo con uno script.
I passaggi generali sono qualcosa del tipo:

- Dividi tabella (dividi colonna "valore" per colonna "attributo") > genera una nuova tabella
- Genera una nuova colonna (C) = colonna A + colonna B
- Genera nuova colonna (D) = colonna A / colonna C

Tuttavia, ogni tabella ha un numero diverso di righe e valori diversi.Quando faccio clic su queste funzioni ed esamino lo script generato da JMP, il numero di righe e i valori in ciascuna colonna sono hardcoded.Come posso renderli completamente variabili in modo da poter eseguire lo script su nuove tabelle di dati di qualsiasi dimensione?
Finora, ho uno script simile a questo, ma ti chiede il numero di righe, quindi genera solo una tabella vuota.Ho difficoltà a trovare la documentazione, quindi qualsiasi aiuto è apprezzato!
New Table( "split table",
Add Rows(),
New Script(
"Source",
Data Table() <<
Split(
Split By( :attribute ),
Split( :value ),
Output Table( "split table" ),
Sort by Column Property ) ),
New Column( "date", Character( 1 ), "Nominal", Set Values( {""} ) ),
New Column( "A", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) ),
New Column( "B", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) ),
New Column( "C", Numeric, "Continuous", Format( "Best", 12 ), Formula( :Name( "A" ) + :Name( "B" ) ) ),
New Column( "D", Numeric, "Continuous", Format( "Percent", 12, 0 ), Formula( :Name( "A" ) / :Name( "C" ) ) ) )
Ri: Come creare uno script generale/variabile per dividere una tabella di dati ed eseguire calcoli?Ciao Jim,
Ci scusiamo per la tabella dei dati.Sembra funzionare bene sul mio computer, quindi l'ho semplicemente ricaricato.
Ho provato il tuo script e funziona tranne una cosa: la creazione delle colonne "data", "A" e "B" è ridondante, perché quelle colonne vengono trasferite alla nuova tabella dalla funzione tabella divisa.Quindi lo script diventa ancora più semplice e funziona perfettamente:
Names Default To Here( 1 );
// Create a pointer variable to be able to
// reference the current active data table
dt = Current Data Table();
// Create the split data table
dt2 = dt << Split(
Split By( :attribute ),
Split( :value ),
Output Table( "split table" ),
Sort by Column Property
);
// Add new columns to the split data table
dt2 << New Column( "C",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :Name( "A" ) + :Name( "B" ) )
);
dt2 << New Column( "D",
Numeric,
"Continuous",
Format( "Percent", 12, 0 ),
Formula( :Name( "A" ) / :Name( "C" ) )
);
Grazie mille!
Ri: Come creare uno script generale/variabile per dividere una tabella di dati ed eseguire calcoli?1. La tabella dati allegata è danneggiata.L'ho aperto usando un editor di testo e ha messaggi di aver cancellato i dati.
2. Dal testo della tua domanda, penso di capire come pensi che la tua struttura di script dovrebbe fare quello che vuoi, ma in realtà genererà solo una tabella di dati vuota .... come hai riportato.
3. Ecco cosa penso tu voglia come punto di partenza per la tua sceneggiatura
Names Default To Here( 1 );
// Create a pointer variable to be able to reference
// the current active data table
dt = Current Data Table();
// Creat the split data table
dt2 = dt << Split(
Split By( :attribute ),
Split( :value ),
Output Table( "split table" ),
Sort by Column Property
);
// Add the new columns to the split data table
dt2 << New Column( "date", Character( 1 ), "Nominal", Set Values( {""} ) );
dt2 << New Column( "A", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) );
dt2 << New Column( "B", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) );
dt2 << New Column( "C",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :Name( "A" ) + :Name( "B" ) )
);
dt2 << New Column( "D",
Numeric,
"Continuous",
Format( "Percent", 12, 0 ),
Formula( :Name( "A" ) / :Name( "C" ) )
);