Hola a todos,
Tengo esta tabla de datos (adjunta) que estoy tratando de analizar con un script jsl. no he ido muy lejos... Conozco la función `Col Moving Average`, pero no pude adaptarla a mis necesidades. ¡Agradecería su aporte!
El guion debe
1. Ordene la columna "Minutos" por la columna "Grupo"
2. Calcular las pendientes de rodadura para la "Lectura" por "Grupo".
La salida debe ser dos columnas agregadas:
1. La pendiente de balanceo, pero solo para filas que tienen suficientes filas antes de ellas para calcular la pendiente de balanceo. Por ejemplo, si el tamaño de la ventana se establece en 5, la pendiente de rodadura solo debe comenzar en la fila 5.
2. La distancia entre los dos puntos de tiempo de borde de la ventana rodante dividida por 2. Por ejemplo, si el primer y último punto de tiempo de la ventana actual son 3 y 8, este valor debería ser 2,5.
¡¡Gracias!!
si entendí lo que quiso decir con pendiente rodante, aquí hay un guión para hacer lo que está buscando y el secreto detrás de cómo hacer el guión.
Guion:
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,
.
)));
Secreto (puedes saltarte esto si ya lo sabes
:
Si sabe cómo hacer las cosas en la GUI en JMP, no necesita muchos conocimientos de secuencias de comandos para crear las secuencias de comandos para hacer las cosas, ya que puede principalmente simplemente copie/pegue del registro. Tres ejemplos para este script:
1. Clasificación. Primero clasifiqué la tabla de datos usando el comando Tablas...Ordenar, luego miré el script "Fuente" guardado en la nueva tabla de datos y lo copié/pegué en una nueva ventana de script (agregué un "dt = " al principio y un punto y coma al final, por lo que debe tener un poco de conocimiento de secuencias de comandos).

2. Agregué una nueva variable de tabla usando la GUI (triángulo rojo en la tabla, Nueva variable de tabla), luego miré el registro, copié descaradamente el script y lo pegué en mi ventana de script. Reemplacé la primera parte con una referencia a "dt".

3. Escribí "dt << nueva columna ("Rolling Slope", numérico, establecer fórmula (xxx)); luego hice la fórmula en la GUI y la copié/pegué para reemplazar la sección "xxx" de código.

Habiendo dicho eso, aquí hay un enlace a un curso excelente y gratuito para aprender scripting.