Utilizzo di valori di riga specifici da utilizzare in una formula con JSLMi piacerebbe fare qualcosa che ho imparato molto tempo fa in VB, ma sto lottando con il linguaggio di scripting JMP. Sono nuovo di JMP.
Vorrei eseguire un ciclo For in una formula ma utilizzare un array di celle.
Ad esempio, so di poter fare riferimento a una colonna come segue: j = Column ("a");
Se poi dico j[4] = 77 + 2; Otterrò il valore 79 nella colonna "a", riga 4.
Cosa succede, però, se volessi eseguire un ciclo sulla colonna "a", ad esempio For(i=1,i<=20,i++, USO DI ALCUNE FORMULE j[io]);
Nell'allegato vorrei utilizzare la riga B della colonna [1] con le righe da 1 a 5 della colonna C. E poi, colonna-B Riga [6] con colonna-C Righe da 6 a 10. Il mio obiettivo è utilizzare la sequenza nella colonna A come identificatore, quindi ogni volta che la sequenza ha valore 1 mantengo questo valore per 5 usi successivi della formula in cui ciò che va nella colonna D dipende dall'aritmetica eseguita sul contenuto delle colonne B e C. (Ad esempio Column-D=Column-B-Value + Column-C-Value.) Vedere l'allegato per vedere in un'immagine cosa intendo.
Qualsiasi aiuto sarebbe grande e molto apprezzato.
Oggetto: utilizzo di valori di riga specifici da utilizzare in una formula con JSLAlla fine mi ci è voluto un po' per capire come funziona lo scripting di JMP. Gli allegati mostrano quello che ho fatto, che funziona per me. (L'esempio devia dal semplice esempio che ho usato per iniziare questa discussione.)
Se qualcuno ha qualche consiglio su come affrontare questo tipo di problema in modo diverso, per favore commenta. Avendo utilizzato cicli for e condizioni if nella programmazione VB di base per così tanti anni ed essendo nuovo in JMP, potrei aver bisogno di una guida per comprendere meglio come affrontare lo scripting JMP.
Oggetto: utilizzo di valori di riga specifici da utilizzare in una formula con JSLGrazie Jim!
Oggetto: utilizzo di valori di riga specifici da utilizzare in una formula con JSLC'è una domanda?
Oggetto: utilizzo di valori di riga specifici da utilizzare in una formula con JSLSto usando questo script per colorare in giallo una cella se la media degli ultimi 30 giorni è superiore a +1 sigma rispetto al target
Per ( io = 1 , io <= Riga N ( dt ) , io ++,
Se ( Colonna ( dt , "In media 30 giorni" )[ io ] > (( Colonna ( dt , "Bersaglio" )[ io ]) + Colonna ( dt , "Standard" )[ io ] ) ,
Colonna ( dt , "In media 30 giorni" ) << Celle di colore ( 9 , { io } )
)
) ;
Oggetto: utilizzo di valori di riga specifici da utilizzare in una formula con JSLLa seguente formula funziona per l'esempio allegato
targetrow = (Row() - :Name( "Column-A" )) + 1;
:Name( "Column-B" )[targetrow] + :Name( "Column-C" );
Ricorda, la formula eseguirà sempre un ciclo su tutte le righe e la funzione, Row (), ti darà sempre la riga su cui si sta attualmente lavorando. Quando si utilizza una formula in JMP, è necessario esaminare quali risultati sono necessari quando si osserva una determinata riga. È un paradigma diverso da VB
Ecco un'altra versione, che esegue il ciclo For che stai cercando
If( :Name( "Column-A" ) == 5,
For( i = Row() - 4, i <= Row(), i++,
:Name( "Column-D" )[i] = :Name( "Column-B" )[Row() - 4] + :Name( "Column-C" )[i]
)
);
// The last value calculated will be the value for the current row,
// so it needs to be handled as a special case
:Name( "Column-B" )[Row() - 4] + :Name( "Column-C" )[Row()];
Immagino che tecnicamente potresti approssimare un mondo VB, se si ignorasse tutta l'elaborazione per tutte le righe, fino a quando l'ultima riga non fosse rilevata, e quindi potresti tornare indietro e scorrere tutte le righe sotto il controllo del programma.... .sembra un sacco di lavoro
dt=current data table();
If(Row()==N Rows(dt),
<DO whatever="" processing="" you="" want="">
);
<PROCESS for="" the="" current=""></PROCESS></DO>