¿Cómo filtrar para mostrar los últimos n elementos/valores?Utilicemos la tabla de datos de muestra de capacidad de semiconductores como contexto.
La columna lot_id tiene 13 niveles.
Digamos que quiero crear un gráfico de control IMR solo para el último lote o solo para los últimos 5 lotes de la tabla de datos. ¿Hay alguna forma elegante de realizar este tipo de filtrado de los últimos n, aparte de desplazarse manualmente por la lista de lotes_id y seleccionar manualmente los últimos 5 lotes?
Como alternativa, tengo años de datos de sensores de proceso en mi tabla de datos. Solo quiero representar gráficamente los últimos seis meses.
Análisis y modelado de datos básicosIngeniería de Calidad y ProcesosRe: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Para el segundo puedes utilizar el filtro de datos.

Es posible que desees crear una columna AÑO-MES para que la selección sea un poco más fácil.
Para el primero, ¿el orden se basa únicamente en el orden de las filas de la tabla de datos? Para la capacidad de semiconductores, están en orden alfabético, por lo que se podría usar un filtro de datos.

Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Los usaría para crear una columna categórica para etiquetar los últimos xx días, meses y años y usarlos en el filtro de datos.
If( :Date >= Date DMY( 1, Month( Col Max( :Date ) ), Year( Col Max( :Date ) ) - 1 ),
"Yes",
"No"
)
If( Col Max( :Date ) - :Date <= In Days( 30 ),
"latest 30 days"
)
Puede modificar esto para los últimos 6 meses.
If(
:Date >= Date DMY( 1, Month( Col Max( :Date ) ), Year( Col Max( :Date ) ) )
-In Years( 0.5 ),
"Yes",
"No"
)
Para etiquetar la última etiqueta X
Usaría esto como ejemplo de los últimos 2 lotes de identificación por ciclo.
1. Reasignar lote o ciclo por número
If( Row() == 1,
1,
If( :Start Date == Lag( :Start Date ),
Lag( :cycle ),
Lag( :cycle ) + 1
)
)
o esto
If( Row() == 1,
1,
If( :lot ID == Lag( :lot ID ),
Lag( :cycle 2 ),
Lag( :cycle 2 ) + 1
)
)
Luego, crea esta fórmula para etiquetar el último ID o Ciclo xx (2 en este ejemplo)
If( Col Max( :cycle ) - :cycle < 2,
"latest 2 cycles"
)
Alternativamente, puede modificar este script para que se ejecute en su tabla de datos.
Sin embargo, es necesario volver a ejecutar este script cada vez que se actualicen los datos. Por lo tanto, prefiero el anterior.
last_no = 2;
// Define your column names
timestampCol = "Start Date"; // Replace with your actual timestamp column name
categoryCol = "lot ID"; // Replace with your actual category column name
// Reference the current data table
dt = Current Data Table();
// Create a summary table with the latest timestamp per category
dtSummary = dt << Summary(
Group( column(categoryCol) ),
Max( column(timestampCol) ),
Link to original data table(0),
Output Table Name("LatestPerCategory")
);
// Sort the summary table by latest timestamp descending
dtSummary << Sort(
By( column("Max(" || timestampCol || ")") ),
Order(Descending),
Replace Table(1)
);
// Get the top 2 categories
latestCategories = {};
For( i = 1, i <= last_no, i++,
Insert Into( latestCategories, dtSummary:lot ID[i] )
);
// Add a new column to flag the latest 5 categories
dt << New Column("Is Latest " ||char(last_no),
Character,
Formula( If( Contains( latestCategories, :lot ID ), "Yes", "No" ) )
);
// Optional: Close the summary table
Close( dtSummary, NoSave );
Así es como se ven mis datos de prueba

Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Para los "últimos 5 lotes" puedes usar Rank Reverse:

¿Tal vez incluso los últimos 5 lotes por "Sitio", como en la captura de pantalla?

Un poco sorprendente: el eje x no se ajusta a la configuración del filtro de datos.
-> mucho espacio en blanco
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Utilicé la fórmula Falso/Verdadero de Últimos 6 meses para crear un subconjunto. Utilicé un subconjunto en lugar de un filtro para que los subgrupos del gráfico de control no incluyeran los casos con un valor de Últimos 6 meses == 0. 
Names Default To Here( 1 );
dt = Current Data Table();
Last.6.Months.Data = dt << Subset( Filtered Rows(:Running? == 1 & :Last.6.Months == 1));
Last.6.Months.Data << Set Name("Last.6.Months.Data");
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Jarmo:
¡Gracias! No conocía la función de orden inverso de rango. La probaré la semana que viene.
Sí, el problema del eje x es la razón por la que utilicé un subconjunto en lugar de un filtro de datos.
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?En realidad, tienes razón: la función necesaria aún no está disponible.
Aprendamos de mi error:
El recuento de Col Rank se basa en filas, no en lotes.
Entonces cada oblea tendrá su propio número. -> no lo que quieres.
Lo siento.
Pero hay una perspectiva agradable:
Con la versión 19, JMP obtendrá la nueva característica : )
Añadir clasificación densa a las funciones Ranking Tie y Col Rank

Por el momento, no existe una opción de un solo clic para calcular la Puntuación Única Inversa.
Como solución alternativa:
Habrá otra nueva funcionalidad en JMP19: Categorías Col N (:green_heart:)
Esto nos permite calcular la puntuación única inversa a través de:
(Col N Unique( :lot_id ) - Col N Unique( :lot_id )) + 1
@jthi , bonita colaboración 
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Como alternativa, se puede agregar un puntaje inverso único manualmente:

a través de una función personalizada
Add Custom Functions(
New Custom Function(
"COL",
"Score Unique_reverse_addExpr",
Function( {value},
Col N Unique( value) - Col Score (value) +1
),
<
<FORMULA category=""></FORMULA>
<BR /> <BR /> <P>con las siguientes restricciones:</P>
<UL>
<LI>Faltan las opciones de agrupación</LI>
<LI><FONT face="courier new,courier">Expr()</FONT> debe agregarse manualmente en el Editor de fórmulas (para evitar que el argumento se evalúe demasiado pronto):</LI>
</UL> <P><A href="https://community.jmp.com/t5/Discussions/Fast-Way-to-calculate-quot-nested-quot-Col-aggregations-like-MAD/m-p/888083/highlight/true#M105027" target="_blank">https://community.jmp.com/t5/Discussions/Fast-Way-to-calculate-"nested-quot-Col-aggregations-like-MAD/mp/888083/highlight/true#M105027</A> </P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_1-1753421633660.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_1-1753421633660.png" style="width: 324px;"><img src="https://us.v-cdn.net/6038925/uploads/images/78870i815199AB7B6D781F/hogi_1-1753421633660.png" role="button" title="hogi_1-1753421633660.png" alt="hogi_1-1753421633660.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P>
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Tenemos una buena opción para "seleccionar último" y demás con niveles de configuración, pero es una lástima que no sean accesibles para filtros de datos (nominales/ordinales).

Hay muchas mejoras de las que los filtros de datos podrían beneficiarse, esta podría ser una más, así que ¿quizás un elemento de la lista de deseos para este tipo de selección?
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?Añadir clasificación densa a las funciones Ranking Tie y Col RankAún no está marcado como "Sí, estad atentos".
Con un poco de suerte podrán incluir la versión "inversa" del ranking denso para JMP19 en septiembre ; )
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?¡Buenas noticias! A partir de JMP 19.0, el Generador de Gráficos de Control incluye una nueva función llamada " Establecer los últimos N subgrupos ", que ajustará el eje X para mostrar siempre los N subgrupos más recientes, independientemente de las actualizaciones de los datos o del gráfico.
Re: ¿Cómo filtrar para mostrar los últimos n elementos/valores?¡Gracias por la confirmación, Annie!
Asistí a tu charla en Discovery24 y pensé que mencionaste esto como una mejora. Lo espero con ansias.