Usar valores de fila específicos para usar en una fórmula con JSLMe gustaría hacer algo que aprendí hace mucho tiempo en VB, pero tengo problemas con el lenguaje de secuencias de comandos JMP. Soy nuevo en JMP.
Me gustaría ejecutar un bucle For en una fórmula pero usar una matriz de celdas.
Por ejemplo, sé que puedo hacer referencia a una columna de la siguiente manera: j = Columna ("a");
Si luego digo j[4] = 77 + 2; Obtendré el valor 79 en la columna "a", fila 4.
Sin embargo, ¿qué pasaría si quisiera ejecutar un bucle en la columna "a", por ejemplo, For(i=1,i<=20,i++, ALGUNA FÓRMULA UTILIZANDO Ji]);
En el archivo adjunto, me gustaría usar la fila [1] de la columna B con las filas 1 a 5 de la columna C. Y luego, la fila [6] de la columna B con las filas 6 a 10 de la columna C. Mi objetivo es usar la secuencia en la Columna-A como un identificador, por lo tanto, cada vez que la secuencia tiene el valor 1, mantengo este valor para 5 usos posteriores de la fórmula donde lo que entra en la Columna-D depende de la aritmética realizada en los contenidos de las Columnas B y C. (Por ejemplo, Columna-D=Columna-B-Valor + Columna-C-Valor). Vea el archivo adjunto para ver en una imagen lo que quiero decir.
Cualquier ayuda sería genial y muy apreciada.
Re: Usar valores de fila específicos para usar en una fórmula con JSLAl final, me llevó un tiempo descubrir cómo funcionan las secuencias de comandos JMP. Los archivos adjuntos muestran lo que he hecho, lo que funciona para mí. (El ejemplo se desvía del ejemplo simple que usé para comenzar esta discusión).
Si alguien tiene algún consejo sobre cómo abordar este tipo de problema de manera diferente, por favor comente. Haber usado bucles for y condiciones if en la programación básica de VB durante tantos años, y ser nuevo en JMP, significa que es posible que necesite orientación para comprender mejor cómo abordar las secuencias de comandos de JMP.
Re: Usar valores de fila específicos para usar en una fórmula con JSL¡Gracias, Jim!
Re: Usar valores de fila específicos para usar en una fórmula con JSL¿Hay alguna pregunta?
Re: Usar valores de fila específicos para usar en una fórmula con JSLEstoy usando este script para colorear en amarillo una celda si el promedio de los últimos 30 días es más de +1 sigma en comparación con el objetivo
Para ( i = 1 , i <= Fila N ( dt ) , i ++,
Si ( Columna ( dt , "Media de 30 días" )[ i ] > (( Columna ( dt , "Objetivo" )[ i ]) + Columna ( dt , "Estándar" )[ i ] ) ,
Columna ( dt , "Media de 30 días" ) << Celdas de color ( 9 , { i } )
)
) ;
Re: Usar valores de fila específicos para usar en una fórmula con JSLLa siguiente fórmula funciona para su ejemplo adjunto
targetrow = (Row() - :Name( "Column-A" )) + 1;
:Name( "Column-B" )[targetrow] + :Name( "Column-C" );
Recuerde, la fórmula siempre recorrerá todas las filas, y la función, Fila(), siempre le dará la fila en la que se está trabajando actualmente. Al usar una fórmula en JMP, uno debe ver qué resultados se necesitan al mirar una fila determinada. Es un paradigma diferente a VB.
Aquí hay otra versión, haciendo el bucle For que estás buscando
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()];
Supongo que, técnicamente, podría aproximarse a un mundo de VB, si uno pasara por alto todo el procesamiento de todas las filas, hasta que se detectara la última fila, y luego podría regresar y recorrer todas las filas bajo el control del programa... .eso parece mucho trabajo
dt=current data table();
If(Row()==N Rows(dt),
<DO whatever="" processing="" you="" want="">
);
<PROCESS for="" the="" current=""></PROCESS></DO>