Voglio aggiungere la formula per sottrarre la 1a e la 4a riga, quindi la 2a e la 5a riga... poi la 3a e la 6a riga e così via... urgente per favore aiutatemi!CIAO,
:RESULT è la colonna in cui voglio sottrarre la riga 1 e la riga 4, quindi la riga 2 e la riga 5 e così via fino al termine di tutte le righe.
:TEST è attualmente una colonna vuota in cui voglio memorizzare i risultati della colonna :RESULT
Ho provato il seguente script nella formula ma non funziona? Non sai perché?
:RESULT << Data Type( Numeric );
:TEST << Data Type( Numeric );
For( i = 1, i <= N Rows(), i++,
Abs( :RESULT[i] - :RESULT[i + 3] )
);
ScriptingRi: Voglio aggiungere la formula per sottrarre la prima e la quarta riga, poi la seconda e la quinta riga... poi la terza e la sesta riga e così via... urgente per favore aiutatemi!Oltre a utilizzare Lag per calcolare, esiste anche una funzione di riga specifica per questo: Dif ( Riferimento sintassi JSL > Funzioni JSL > Funzioni riga - Dif(col, n) ). A volte potrebbe funzionare meglio rispetto all'utilizzo di Lag.
Ri: Voglio aggiungere la formula per sottrarre la prima e la quarta riga, poi la seconda e la quinta riga... poi la terza e la sesta riga e così via... urgente per favore aiutatemi!Inoltre, per calcolare con righe diverse, ti consiglio la funzione lag, che restituisce il valore di una riga relativo alla riga corrente, e non hai bisogno di un ciclo.

Ri: Voglio aggiungere la formula per sottrarre la prima e la quarta riga, poi la seconda e la quinta riga... poi la terza e la sesta riga e così via... urgente per favore aiutatemi!La tua formula non dovrebbe contenere un ciclo For (), a meno che tu non lo stia eseguendo non come formula JMP, ma piuttosto come JSL in codice aperto.Se si specifica il codice come formula per la colonna, JMP scorre automaticamente ogni riga dei dati e applica la formula.Pertanto, il ciclo For() non è richiesto Di seguito è riportato un piccolo script che crea una nuova colonna e quindi aggiunge una formula per la colonna.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "The New Column",
formula( If( :ATT1 == 0, 0, Abs( :RESULT - :RESULT[Row() + 3] ) ) )
);
Se hai una colonna vuota (ad esempio, chiamata "mytest") puoi usare una funzione For Each Row () per scorrere la tabella dei dati e calcolare i valori
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row(
If( :ATT1 == 0,
:mytest = 0,
:mytest = Abs( :RESULT - :RESULT[Row() + 3] )
)
);
Infine, come hai indicato, puoi usare un ciclo For() per scorrere la tabella dei dati.Questo codice richiede di specificare la riga specifica su cui operare
Names Default To Here( 1 );
dt = Current Data Table();
For( i=1, i<=N Rows(dt), i++,
If( :ATT1[i] == 0,
:mytest[i] = 0,
:mytest[i] = Abs( :RESULT[i] - :RESULT[i + 3] )
)
);
Ri: Voglio aggiungere la formula per sottrarre la prima e la quarta riga, poi la seconda e la quinta riga... poi la terza e la sesta riga e così via... urgente per favore aiutatemi!Capito:
Ho dovuto aggiornare la riga:
Abs( :RESULT[i] - :RESULT[i + 3] )
A
:TEST[i]=Abs( :RESULT[i] - :RESULT[i + 3] )