eliminar duplicadoHola todos,
Estoy tratando de ordenar mi tabla de datos, tiene valores duplicados:

Como puede ver, tengo el mismo valor para un nombre diferente en CHART_PARAMETER, mi interés es tomar solo filas que tengan un tipo de CHART_PARAMETER por cada valor. Intenté filtrar datos pero abre la ventana JMP con opciones para elegir, estoy tratando de hacer todos los cálculos para que el usuario no los vea y cree una nueva tabla de datos con filas seleccionadas y realice una manipulación adicional con estos datos.
Gracias.
Re: eliminar duplicadoBusque en el índice de secuencias de comandos
Ayuda==>Índice de secuencias de comandos==>Funciones==>Lag
Además, busque en el libro Uso de JMP
Ayuda==>Libros==Uso de JMP
Retraso
Devuelve el valor del primer argumento de la fila definida por la fila actual menos el segundo argumento. El retraso predeterminado es uno, que puede cambiar a cualquier número. Falta el valor devuelto para cualquier retraso que identifique un número de fila menor que uno. Tenga en cuenta que Lag(X, n) da el mismo resultado que la notación con subíndice, XRow( )–n.
Re: eliminar duplicado¿Puede enviarme información para la función Lag si tiene? Encontré algunos ejemplos, pero no de la manera en que los usaste.
¡Muchas gracias por tu ayuda!Re: eliminar duplicadoEste es mi error.En mi apuro, indiqué el lugar equivocado para el final "num".Aquí hay un pequeño script que crea su columna de Entidad y luego agrega la nueva columna con el contador en ella.
Names Default To Here( 1 );
dt = New Table( "count",
Add Rows( 34 ),
New Column( "Entity",
Character,
"Nominal",
Set Values(
{"RLC101", "RLC101", "RLC101", "RLC101", "RLC102", "RLC102", "RLC102", "RLC102", "RLC102",
"RLC102", "RLC102", "RLC102", "RLC102", "RLC102", "RLC102", "RLC102", "RLC103", "RLC103", "RLC103",
"RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC104",
"RLC104", "RLC104", "RLC104", "RLC104", "RLC101"}
)
)
);
dt << New Column( "Number",
numeric,
formula( If( Lag( :ENTITY ) != :ENTITY, num = 1, num = num + 1 );
num;
));Re: eliminar duplicadoHola,
Todavía tengo solo un valor "1" para cada ENTIDAD.
MP = AR << Sort(
by(ENTITY,LOT_DATA_COLLECT_DATE),Order(Ascending,Descending)
);
//MP:LOT_DATA_COLLECT_DATE << Format("m/d/y")<<Data Type("Character")<<Modeling Type("Nominal") ;
MP << New Column("num",
Character,
Formula(
If( Lag(:ENTITY) != :ENTITY,
num = 1,
num = num + 1
)
)
);
num ; ¿Puedo usar de otra manera? ¿Qué puedo hacer mal? ¿La fecha debe estar en un formato específico?
La función de retraso compara EVENTO para EVENTO de la fila anterior, ¿cómo ahora ese valor para comparar es la columna Fecha?
Gracias.
Re: eliminar duplicadoLa fórmula no se copió correctamente.Dejaste el "num" final fuera de la fórmula.De la forma en que funcionan las fórmulas, el último valor expresado es el valor que se devuelve a jmp.Por lo tanto, al especificar "num" como el último elemento de la fórmula, es lo que se devuelve
MP = AR << Sort(
by(ENTITY,LOT_DATA_COLLECT_DATE),Order(Ascending,Descending)
);
MP << New Column("num",
Character,
Formula(
If( Lag(:ENTITY) != :ENTITY,
num = 1,
num = num + 1
)
)
);
num;
Re: eliminar duplicadoJim hola,
Probé tu guión
Por favor mira:
Tabla después de la ejecución del código.
Num no obtuvo los números correctos.

MP = AR << Sort(
by(ENTITY,LOT_DATA_COLLECT_DATE),Order(Ascending,Descending)
);
MP << New Column("num",
Character,
Formula(
If( Lag(:ENTITY) != :ENTITY,
num = 1,
num = num + 1
)
)
);Gracias.
Re: eliminar duplicadoCreo que la solución es más sencilla de lo que crees.
- Ordenar los datos por Entidad ascendente, fecha descendente
- Cree una nueva columna que tenga la siguiente fórmula, que es un contador simple dentro de cada Entidad
If( Lag( :Entity ) != :Entity,
num = 1,
num = num + 1
);
num;
Finalmente, puede seleccionar dónde su nueva columna tiene un valor de <= 3
Re: eliminar duplicadoHola,
Gracias por una respuesta rápida.
Ahora estoy tratando de seleccionar los últimos 3 puntos por fecha para cada Entidad. Puedo agrupar la tabla por entidad, pero después de eso necesito encontrar los últimos 3 puntos por rango de fechas. ¿Cómo puedo hacerlo usando seleccionar dónde o cualquier otra función?
RCL son los nombres de mi Entidad y Entiry_1, y necesito seleccionar los 3 últimos valores por fecha para cada columna. Por ejemplo:
RCL101 3 últimos valores por fecha en Chart_Value y Valor_gráfico_1.
Usaré cualquier ayuda 
Gracias.
Mi tabla de datos:
LOT_DATA_COLLECT_DATE CHART_TYPE MODULE CHART_VALUE ENTITY MEASUREMENT_SET_NAME MONITOR_SET_NAME ENTITY_1 LOT_DATA_COLLECT_DATE_1 CHART_VALUE_1 MONITOR_SET_NAME_1 CHART_TYPE_1
2017/01/20 2:46:43 PM X-BAR RCL FE 8234.73 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/20 8:25:35 PM X-BAR RCL FE 8734.13 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/22 4:40:38 AM X-BAR RCL FE 8743.67 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/22 3:51:54 PM X-BAR RCL FE 8539.85 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/25 10:39:43 AM X-BAR RCL FE 9179.86 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/28 9:03:46 PM X-BAR RCL FE 8097.51 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/31 10:26:57 PM X-BAR RCL FE 7979.97 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/07 6:53:08 PM X-BAR RCL FE 7992.35 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/22 8:40:50 AM X-BAR RCL FE 7672.35 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/27 7:54:09 AM X-BAR RCL FE 8319.25 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/02 3:11:43 AM X-BAR RCL FE 7506.47 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/06 10:42:00 PM X-BAR RCL FE 8046.7 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/18 12:47:10 AM X-BAR RCL FE 81.0555 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/20 12:35:05 PM X-BAR RCL FE 9159.32 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/28 1:58:47 AM X-BAR RCL FE 9278.75 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/03 4:38:46 AM X-BAR RCL FE 9288.21 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/07 4:24:21 AM X-BAR RCL FE 8677.35 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/21 7:22:14 AM X-BAR RCL FE 9969.63 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/24 1:10:21 PM X-BAR RCL FE 9291.7 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/31 1:16:24 AM X-BAR RCL FE 9521.71 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/05 4:41:46 AM X-BAR RCL FE 9287.35 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
RCL101 2017/01/21 7:34:05 AM 3897.38724 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL101 2017/01/24 1:28:26 PM 3898.22897 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL101 2017/01/31 12:17:43 AM 4002.58931 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL101 2017/02/05 5:01:06 AM 4014.63793 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL102 2017/02/03 4:41:11 AM 4001.03793 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL102 2017/02/07 5:03:23 AM 3927.14069 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/02 5:45:08 PM 3831.54276 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/02 5:49:14 PM 3827.88931 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/03 3:24:54 AM 3786.87207 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/06 11:49:29 PM 3847.12241 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/01/20 2:49:09 PM 3960.13897 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/01/29 1:54:30 AM 3988.62414 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/01/31 9:58:15 PM 3984.87379 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/02/07 6:42:46 PM 4064.63414 RCLFE.ASHRATE_PST.74.MON X-BAR
Re: eliminar duplicadoAquí hay una secuencia de comandos rápida que devolverá una tabla de datos donde contiene solo los valores de gráfico que tienen una entrada
Names Default To Here( 1 );
dt = Current Data Table();
dtsumm = dt << Summary(
invisible,
Group( :Chart_Value ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
dtsumm << select where( :n rows > 1 );
dtsumm << delete rows;
dtfinal = dt << Join(
With( dtsumm ),
By Matching Columns( :Chart_Value = :Chart_Value ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
Close( dtsum, nosave );