Ciao a tutti,
Ho questa tabella di dati (in allegato) che sto cercando di analizzare con uno script jsl. non sono andato molto lontano... Sono a conoscenza della funzione `Col Moving Average` ma non sono riuscito a soddisfarla per le mie esigenze. Appericaite il tuo contributo!
La sceneggiatura dovrebbe
1. Ordina la colonna "Minuti" per la colonna "Gruppo".
2. Calcolare le pendenze di rotolamento per la "Lettura" per "Gruppo".
L'output dovrebbe essere due colonne aggiunte:
1. La pendenza ondulata, ma solo per i filari che hanno davanti un numero sufficiente di file per calcolare la pendenza ondulata. Ad esempio, se la dimensione della finestra è impostata su 5, la pendenza di rotolamento dovrebbe iniziare solo dalla riga 5.
2. La distanza tra i due edge time point della finestra mobile divisa per 2. Ad esempio, se il primo e l'ultimo punto temporale della finestra corrente sono 3 e 8, questo valore dovrebbe essere 2,5.
Grazie!!
se ho capito cosa intendi per pendenza ondulata, ecco una sceneggiatura per fare quello che stai cercando e il segreto dietro come realizzare la sceneggiatura.
Sceneggiatura:
dt = Data Table( "Input data" ) << Sort(
By( :Group, :Minutes ),
Order( Ascending, Ascending ),
Output Table( "Sorted Input Data.jmp" )
);
dt << New Table Variable ("window", 5);
dt << new column ("Rolling Slope", numeric, set formula (If( Row() > window,
(:Reading + Lag( :Reading )) / 2,
.
)));
Segreto (puoi saltarlo se lo conosci già
:
Se sai come fare le cose nella GUI in JMP, non hai bisogno di un sacco di know-how di scripting per creare gli script per fare le cose, come puoi per lo più basta copiare/incollare dal registro. Tre esempi per questo script:
1. Ordinamento. Per prima cosa ho ordinato la tabella dei dati usando il comando Tables...Sort, quindi ho guardato lo script "Source" salvato nella nuova tabella dei dati e l'ho copiato/incollato in una nuova finestra dello script (ho aggiunto un "dt = " all'inizio e un punto e virgola alla fine, quindi devi avere un minimo di conoscenza degli script).

2. Ho aggiunto una nuova variabile di tabella utilizzando la GUI (triangolo rosso sulla tabella, Nuova variabile di tabella), quindi ho guardato il registro e ho copiato spudoratamente lo script e l'ho incollato nella finestra dello script. Ho sostituito la prima parte con un riferimento a "dt".

3. Ho digitato "dt << new column ("Rolling Slope", numeric, set formula (xxx));", quindi ho creato la formula nella GUI e l'ho copiata/incollata per sostituire la sezione "xxx" di codice.

Detto ciò, ecco un collegamento a un corso eccellente e gratuito per l'apprendimento dello scripting.