Hola a todos
Tengo las columnas "Rel Interval", "SrID", "Pass_Fail". Quiero crear y generar un script para la última columna "Updated Pass_Fail_SrID". Todos los SrID pasan en el intervalo rel "0" y "24", pero los SrID "B" y "D" fallan en "100". Quiero crear la última columna "Pass_Fail_SrID actualizado" que toma referencia de pasa y falla y asigna pasa/falla a todos los puntos de control. Esto es para que mientras trazo pueda tener la referencia dividida.

Cualquier consejo es muy apreciado.
Muchas gracias
satej
Hola satej
La solución más simple es recodificar su columna Pass_Fail como una columna numérica continua con Fail = 0 y Pass = 1. Luego puede buscar el mínimo por ID de Sr para determinar si alguno de los ID de Sr falló en algún momento.
Ver esta solución adjunta
Mejor,
TS
A continuación se muestra un script simple que creará la nueva columna creando una segunda tabla, manipulando esa tabla y luego devolviendo los resultados a la tabla original. Si bien esto se hace utilizando un script, cada uno de los pasos del script está disponible para realizarse utilizando la metodología interactiva de apuntar y hacer clic que JMP hace tan bien.
names default to here(1);
// create the example data table
dt = New Table( "Example 3",
Add Rows( 15 ),
New Column( "Rel Interval",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 100, 100, 100, 100, 100] )
),
New Column( "Sr ID",
Character( 8 ),
"Nominal",
Set Values(
{"A", "B", "C", "D", "E", "A", "B", "C", "D", "E", "A", "B", "C", "D",
"E"}
)
),
New Column( "Pass_Fail",
Character( 8 ),
"Nominal",
Set Values(
{"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Fail", "Pass", "Fail", "Pass"}
)
)
);
wait(3); // this is added just so the viewer can see the original data table
// Split the Pass Fail column into 2 columns
dtSplit = dt << Split(
Split By( :Pass_Fail ),
Split( :Pass_Fail ),
Group( :Sr ID ),
Remaining Columns( Drop All ),
Sort by Column Property
);
wait(2);
// Create a new column that has a formula that will set the Pass or Fail value
dtSplit << New Column("Updated Pass_Fail_SrID", character, formula(Word( 1, :Fail || "," || :Pass, "," )));
wait(2);
// convert the formula column into static values
dtSplit:Updated Pass_Fail_SRID << delete formula;
wait(2);
// Delete no longer wanted columns
dtSplit << delete columns("Fail","Pass");
wait(2);
// Update the original data table with the information from the split table
dt << Update(
With( dtSplit ),
Match Columns( :Sr ID = :Sr ID )
);
Estos son los pasos para hacer esto interactivamente
- Haga clic en la tabla de datos que tiene las columnas, Intervalo rel, Sr ID y Pass_Fail, para convertir la tabla de datos en la tabla de datos activa actual.
- Vaya a los menús desplegables y seleccione Tablas ==> Dividir
- Establezca la columna Pass_Fail y la opción "Dividir por", y también como la opción "Dividir columnas", y luego establezca la columna Sr ID como la opción "Grupo"
- Haga clic en Aceptar
- Vaya a la nueva tabla de datos que se ha creado.
- Crea una nueva columna llamada " Pass_Fail_SrID actualizado "y crea su tipo de datos," Carácter "
- Haga clic derecho en el encabezado de la columna y seleccione "Fórmula"
- En la ventana de fórmula, escriba la fórmula Palabra (1,: Fail || "," ||: Pass, ",") Esta fórmula concatenará las 2 columnas de Fail and Pass juntas, colocando una coma entre los valores. Luego usará la función Word () para seleccionar la primera palabra en la lista concatenada, y dado que las filas que no tienen Fallos, tendrán el valor de Pass como su primera palabra, los valores resultantes establecerán los valores correctos.
- Haga clic en Aceptar
- Ahora vaya a la ventana de diálogo Información de columna para la nueva columna y haga clic en la propiedad de la columna "fórmula", y luego haga clic en Eliminar. Esto convertirá los valores en la nueva columna a valores estáticos, en lugar de los valores calculados.
- Eliminar las columnas Pasa y Falla. Ya no son necesarios.
- Regrese a la tabla de datos original y vaya al menú desplegable y seleccione Tablas == Actualizar
- Seleccione la tabla de búsqueda en la que se creó la nueva columna como la tabla que se utilizará para obtener la actualización de
- marque la casilla "Columnas coincidentes"
- seleccione Sr ID de ambas tablas de datos y luego haga clic en el botón Match
- Haga clic en Aceptar y su tabla de datos original ahora tendrá la nueva columna agregada
Muchas gracias por las prontas respuestas.