Creación de un gráfico de valores delta entre dos subconjuntos; desea seleccionar 2 "pruebas" para comparar entre múltiples valores de pruebaEstoy trazando un gráfico de CD vs. profundidad, para un total de 8 conjuntos en el ejemplo (Aa, Ab, Ba, Bb...). Para cada prueba A~D, hay 2 'ubicaciones' diferentes a y b.
Me gustaría elegir 2 conjuntos específicamente y crear un gráfico delta; por ejemplo, si selecciono Aa y Ba, los valores de CD se restan en cada profundidad y se debe generar un gráfico de CD vs. Profundidad.
¿Es esto algo que puedo hacer en JMP? Estaba intentando hacer esto en Excel usando la función xlookup, pero como la cantidad de datos es enorme (más de 30 000 filas), es demasiado lento. No estoy seguro de si esto es algo que puedo hacer en JMP.
Conjunto de datos de ejemplo

Ejemplo de gráfico de CD vs. profundidad;

Exploración y visualización de datosCompartir y comunicar resultadosRe: Creación de un gráfico de valores delta entre dos subconjuntos; quiero seleccionar 2 "pruebas" para comparar entre múltiples valores de pruebaCon scripts, esto se puede hacer sin dudarlo, y tal vez también sin scripts, al menos como flujo de trabajo. ¿Puede proporcionar un conjunto de datos de ejemplo? ¿Puede elegir solo dos pares al mismo tiempo? Además, ¿la ubicación es siempre la misma para las pruebas seleccionadas?
Re: Creación de un gráfico de valores delta entre dos subconjuntos; quiero seleccionar 2 "pruebas" para comparar entre múltiples valores de pruebaClaro, aquí está el archivo de datos de ejemplo.
Estoy buscando obtener el valor delta entre dos pares, así que sí, siempre elegiría 2 para comparar.
La ubicación puede no ser la misma; en el conjunto de datos real, tengo algunas muestras que tienen más ubicaciones. También necesito comparar muestras con muestras, así como ubicaciones con ubicaciones. Por ejemplo, la muestra Aa con la muestra Cb.
Aquí está
Re: Creación de un gráfico de valores delta entre dos subconjuntos; quiero seleccionar 2 "pruebas" para comparar entre múltiples valores de prueba¿Está bien si se crea una nueva tabla de datos después de las selecciones del usuario? Mi idea básica sería con scripts:
- Añade una columna de ordenación a tus datos
- Crear una interfaz de usuario en la que el usuario pueda elegir en un cuadro de lista qué combinaciones comparar
- El usuario presiona OK y se creará una nueva tabla con datos para esas dos combinaciones.
- Se calculará la diferencia
- Visualizar los datos
Otra opción que se me ocurre es dividir los datos y calcular previamente todas las diferencias en columnas. Luego, podrías usar el selector de columnas en el generador de gráficos para cambiar cuál comparar.
Re: Creación de un gráfico de valores delta entre dos subconjuntos; quiero seleccionar 2 "pruebas" para comparar entre múltiples valores de pruebaQuería ver si podía cambiar rápidamente las condiciones para compararlas. Parece que no es tan sencillo.
Calcular todas las diferencias no funcionaría ya que hay muchos conjuntos de datos, creo.
Gracias por la ayuda, déjame pensar un poco más.
Re: Creación de un gráfico de valores delta entre dos subconjuntos; quiero seleccionar 2 "pruebas" para comparar entre múltiples valores de pruebaSolo se me ocurren opciones de scripting (fuera de esa división). Considero que las tablas JMP se parecen más a las tablas de bases de datos que a las hojas de cálculo, por lo que los cálculos (normalmente) se realizan a nivel de fila y como agregaciones. Si el recuento de prueba es siempre el mismo para cada uno de los "pares", esto se puede hacer con algunas columnas de fórmula y un filtro de datos global para facilitar la selección de opciones.
Re: Creación de un gráfico de valores delta entre dos subconjuntos; quiero seleccionar 2 "pruebas" para comparar entre múltiples valores de pruebaCon scripts puedes crear cosas como esta (faltan algunas comprobaciones de cordura)
Names Default To Here(1);
dt = Current Data Table();
dt << New Column("Group", Character, Nominal, Formula(
"Test: " || :Test || " Location: " || :Location
));
Summarize(dt, groups = By(:Group));
dt_temp = New Table("TEMPTABLE",
Add Rows(5), // same as your group size
Compress File When Saved(1),
New Column("Depth",
Numeric,
"Continuous",
Values([0, 20, 40, 60, 80])
),
New Column("CD First",
Numeric,
"Continuous"
),
New Column("CD Second",
Numeric,
"Continuous"
),
New Column("CD diff",
Numeric,
"Continuous"
),
Invisible
);
update_expr = Expr(
Try(
first_group = (lb_first << get selected)[1];
second_group = (lb_second << get selected)[1];
first_cd = dt[dt << Get Rows Where(:Group == first_group), "CD (nm)"];
second_cd = dt[dt << Get Rows Where(:Group == second_group), "CD (nm)"];
dt_temp[0, "CD First"] = first_cd;
dt_temp[0, "CD Second"] = second_cd;
dt_temp[0, "CD Diff"] = Abs(second_cd - first_cd);
,
dt_temp[0, "CD First"] = [., . ,., ., .];
dt_temp[0, "CD Second"] = [., . ,., ., .];
dt_temp[0, "CD Diff"] = [., . ,., ., .];
);
);
nw = New Window("Demo",
H List Box(
Panel Box("Pick First Group",
lb_first = List Box(groups)
),
Panel Box("Pick Second Group",
lb_second = List Box(groups)
),
Data Table Box(dt_temp),
gb = dt_temp << Graph Builder(
Size(525, 454),
Show Control Panel(0),
Variables(X(:CD diff), Y(:Depth)),
Elements(Points(X, Y, Legend(11)), Line(X, Y, Legend(13)))
),
Panel Box("Actions",
Lineup Box(N Col(1),
Button Box("Cancel")
)
)
)
);
lb_first << Set Max Selected(1);
lb_second << Set Max Selected(1);
lb_first << Set Script(update_expr);
lb_second << Set Script(update_expr);
Eval(EvalExpr(
nw << On Close(
Close(dt_temp, no save);
)
));

Creo que también podrías duplicar tu tabla para poder hacer una autounión con columnas "duplicadas", unirla a la tabla original por profundidad, eliminar autouniones, crear un selector de agrupación, una fórmula para las diferencias y crear un gráfico.

Y esto es fácil de automatizar en JMP.
