<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Mis datos se organizan en columnas de la siguiente manera:
# de oblea, número de registro, ID de DUT, hora de prueba, parámetro 1, parámetro 2 ........
Tengo un conjunto de especificaciones que deseo aplicar para identificar todos los DUT que fallan en la Hora de prueba = 0. Una vez que se identifican esos DUT, quiero eliminar todas las instancias de esos mismos DUT. Sin embargo, no quiero que se aplique el mismo conjunto de especificaciones a todas las demás horas de datos de prueba.
Llegué a generar otra tabla en el mismo formato, con todas las fallas t = 0 identificadas. Ahora quiero ingresar el Log #, el ID de DUT y eliminar todas las instancias (todas las horas subsiguientes de prueba) de los DUT fallidos de la tabla original. ¿Cómo lo hago?
(Aquí hay una ligera variación en el enfoque de Martin arriba).
Generalmente, si tiene diferentes límites para los valores en una sola columna, tal vez sea mejor dividir los datos para que pueda tener los límites requeridos almacenados como propiedades de columna. Pero si tiene razones para no hacerlo, el siguiente enfoque es una forma de hacer lo que creo que quiere. Corte y pegue el código en una ventana del editor, luego seleccione 'Editar> Ejecutar script'. (Los comandos 'Esperar ()' son para que pueda ver lo que está pasando).
NombresDefaultToHere ( 1 ) ;
// tabla de ejemplo
dt =
Nueva mesa ( "DUT" ,
Añadir filas ( 12 ) ,
Nueva Columna ( "ID DUT" ,
Numérico ,
"Nominal" ,
Formato ( "Mejor" , 12 ) ,
Valores establecidos ( El 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ] )
) ,
Nueva Columna ( "Hora de prueba" ,
Numérico ,
"Ordinal" ,
Formato ( "Mejor" , 12 ) ,
Valores establecidos ( El 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 ] )
) ,
Nueva Columna ( "p1" ,
Numérico ,
"Continuo" ,
Formato ( "Diciembre fijo" , 12 , 3 ) ,
Valores establecidos (
El 0.299525242746479 , 1.0633718409566 , 0.507859846881073 ,
- 1.11573907805173 , 0.222826061547355 , - 0.318546800557343 ,
- 0.0356930503397689 , 0.661572077447882 , - 0.182884744578411 ,
- 0.930044642545168 , 0.767786562806245 , - 0.130135490980355 ]
)
) ,
Nueva Columna ( "p2" ,
Numérico ,
"Continuo" ,
Formato ( "Diciembre fijo" , 12 , 3 ) ,
Valores establecidos (
El 0.967955026618985 , - 1.05625737545624 , 0.399938006086842 ,
- 0.0459988344031106 , - 1.30650202283731 , 1.66536579742163 ,
1.19669670020495 , - 0.205442597157623 , - 1.40714522703899 ,
0.517030195850593 , - 0.51315580063705 , - 1.17294833449061 ]
)
)
) ;
// Supongamos que los valores de 'pi' <0.5 en 'Hora de prueba' = 0 definen una falla -
// Luego seleccione las filas correspondientes en dt:
Espere ( 1 ) ;
dt << borrarSeleccionar () ;
dt << Seleccione Donde ( : p1 < 0.5 Y : Hora de prueba == 0 ) ;
// Seleccione la columna 'ID DUT'
Espere ( 1 ) ;
Columna ( dt , "ID DUT" ) << setSelected ( 1 ) ;
// 'Expandir' la selección para abarcar todas las filas asociadas con un DUT que falla
Espere ( 1 ) ;
dt << selectMatchingCells ;
// Deseleccionar la columna
Espere ( 1 ) ;
Columna ( dt , "ID DUT" ) << setSelected ( 0 ) ;
// borrar las filas
Espere ( 1 ) ;
dt << deleteRows ;
[Editar: se agregó "Eval Formula" para evitar problemas de cálculo en tiempo real.]
Aquí hay un fragmento de código que creo que hace lo que estás buscando:
dt = Tabla de datos ( "targetdt" ) ;
dt << Seleccione Donde ( : Hora == 0 ) ;
sdt = dt << Subconjunto ( filas seleccionadas ) ; // generar la tabla de subconjuntos para los datos en horas = 0
minspec = 3 ; // tu especificación
sdt << Nueva Columna ( "inspec" , Fórmula ( : Param1 > = minspec ) Eval Formula ) ; // ver si este dut está en especificaciones de acuerdo a las horas = 0 datos
dt << actualizar (
Con ( sdt ) ,
Coincidir columnas ( : Iniciar sesión# = : Iniciar sesión# , : DUT_ID = : DUT_ID ) ,
Añadir columnas de la tabla de actualización ( : inspec )
) ;
dt << Seleccione Donde ( : inspec == 0 ) ;
dt << Eliminar filas () ;
La clave es tener una columna como "inspec" que agregue a su tabla original usando "Actualizar". Entonces puedes filtrar por esa columna.