Script per l'elaborazione delle tabelle JMP14Ciao. Potresti aiutarmi a scrivere uno script che prenda la tabella originale e ne crei una nuova? La tabella originale ha due righe per ogni misurazione della temperatura del campione. Nella tabella di output utilizziamo solo una riga per ogni campione e calcoliamo il numero di giorni tra le due misurazioni e il delta di temperatura.
Automazione e scriptingfinestreRe: Script per l'elaborazione della tabella JMP14Potresti fornire i dati di esempio come tabella JMP in modo che non dobbiamo crearli dall'immagine (i formati possono avere un grande impatto sullo script)
Re: Script per l'elaborazione della tabella JMP14È possibile aggiungere due colonne di formule che calcolano il massimo e il minimo per ciascun campione (temperatura e data):

Oppure esegui lo script seguente per ottenere la tua tabella di esempio con le colonne della formula.
New Table( "Example",
Add Rows( 8 ),
New Column( "Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 2, 3, 3, 99, 99] )
),
New Column( "Temperature",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [199, 210, 201, 217, 200, 215, 199, 220] )
),
New Column( "Temp Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Col Maximum( :Temperature, :Sample )
-Col Minimum( :Temperature, :Sample )
)
),
New Column( "Date (ISO 9601 format)",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 10 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3795552000, 3798576000, 3795552000, 3798748800, 3795552000, 3798662400,
3795552000, 3798921600]
)
),
New Column( "Date Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Date Difference(
Col Minimum( :"Date (ISO 9601 format)"n, :Sample ),
Col Maximum( :"Date (ISO 9601 format)"n, :Sample ),
"Day"
)
)
)
)
E poi un rapido riepilogo ti darà la tabella che stavi cercando:

Re: Script per l'elaborazione della tabella JMP14Ciao Jarmo. Grazie per il tuo supporto. In allegato.
Re: Script per l'elaborazione della tabella JMP14Ciao Paul. Grazie per la tua idea. Questo approccio funzionerà se il delta di temperatura a volte è negativo, e per me è fondamentale?
Re: Script per l'elaborazione della tabella JMP14Ok. Ho controllato, non funziona. Possiamo usare un'altra formula per scegliere la misurazione della temperatura dalla data successiva e da quella precedente?
Re: Script per l'elaborazione della tabella JMP14Puoi usare le seguenti formule
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2 - :Temperature)
E
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) / In Days(1)
per calcolare i delta.

Quindi crea una nuova tabella senza le 0 righe (non includere formule in quella tabella) oppure rimuovi le formule ed elimina quelle 0 righe.

Penso che questo script dovrebbe funzionare per JMP14 (non posso testarlo perché non ho accesso a quello)
Names Default To Here(1);
dt = Open("$DOWNLOADS/source table.jmp");
dt << New Column("Time Delta", Numeric, "Continuous", Formula(
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2
- :Temperature)
));
dt << New Column("Temperature Delta", Numeric, "Continuous", Formula(
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) /
In Days(1)
));
dt << Select Where(:Temperature Delta == 0) << Invert Row Selection;
dt_subset = dt << Subset(
Copy formula(0),
Selected Rows(1),
Columns({"Sample", "Time Delta", "Temperature Delta"}),
Output Table("Deltas")
);
dt << Clear Select;Re: Script per l'elaborazione della tabella JMP14Grazie Jarmo. Fammi provare.
Re: Script per l'elaborazione della tabella JMP14Jarmo, grazie mille per la tua soluzione. Funziona.
Ma ho altre due domande:
1. Potresti spiegare cosa fa la formula con il calcolo della media mobile? Voglio solo capire la logica del tuo approccio...
2. Ho appena notato che se la prima riga va con una data successiva, fornisce il delta temporale negativo... Il delta temporale dovrebbe essere sempre positivo. Funzionerà se ordino la tabella sorgente all'inizio in modo che il tuo script funzioni correttamente?
Re: Script per l'elaborazione della tabella JMP14L'ordinamento dovrebbe funzionare, ma potresti considerare anche altre formule se è questo il caso (se l'ordine è sempre successivo - precedente). Io uso Col Moving Average, così posso accedere al valore dalla riga precedente per il gruppo.