A menudo resumo una columna mediante una combinación de otras columnas categóricas utilizando una columna de fórmula. Por ejemplo, en los datos de la muestra de detergente me gustaría saber el recuento promedio para cada combinación de suavidad y temperatura. A continuación, se incluyen tres métodos para hacer esto, el que yo uso depende del tamaño de la tabla de datos y de quién es mi audiencia. hay una manera mas facil?
Evito un complemento que contenga una función personalizada 'Col Mean by Multiple Columns ()' debido a problemas de portabilidad.
Abarcar
Cree estadísticas de resumen en una nueva tabla utilizando tabular y luego combine los resultados con la tabla de datos original.
Pro: Fácil de hacer estadísticas de resumen muy complejas.
Con: No está activo, necesita actualizar los datos si una columna de referencia cambia durante un análisis, no hay manera de que los usuarios sigan la fuente de los datos.
Fórmula binning
Cree una fórmula de agrupación y luego use el segundo argumento de la función Col Mean () para hacer referencia a esa ubicación.
Pro: fácil de configurar y relativamente fácil de seguir para los usuarios.
Con: crea columnas adicionales que abarrotan la tabla de datos y no tienen ningún uso, excepto esta fórmula, especialmente cuando se crean muchas columnas de resumen.
dt = Open( "$sample_data/Detergent.jmp" );
//binning formula
dt << New Column(
"Bin by Temp and Softness",
Character,
"Nominal",
Formula( :softness || "-" || :temperature )
);
//summary statistic
dt << New Column(
"Mean Count by Temp and Softness Binned",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Col Mean( :count, :Bin by Temp and Softness) )
);
Identifique contenedores y calcule estadísticas de resumen utilizando JSL dentro de una fórmula
Identifique filas similares en la tabla de datos y luego calcule la estadística de resumen de esos datos. Sospecho que JMP no almacena en caché los resultados utilizando este método, por lo que toda la tabla se vuelve a evaluar para cada fila. En cualquier caso es lento para tablas de datos grandes.
Pro: Toneladas de flexibilidad
Contras: cálculos lentos, muy difíciles de seguir para los usuarios.
//summary statistic by bin
dt << New Column(
"Mean Count by Temp and Softness Direct",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
matches = Function( {a, b},
out = {};
For( i = 1, i <= N Items( a ), i++,
found = "no";
For( j = 1, j <= N Items( b ), j++,
If( a[i] == b[j],
found = "yes"
)
);
If( found == "yes",
out = Insert( out, a[i] )
);
);
out;
);
soft = Loc( :softness << get values(), :softness );
temp = Loc( :temperature << get values(), :temperature );
Mean( (:count << get values())[matches( soft, temp )] );
)
);Genial, me alegro de que eso ayude! Debería haber mencionado que en versiones recientes de JMP (creo que desde JMP 11) puedes tener múltiples parámetros de columna directamente en ColMean (). Entonces, en lugar de concatenar, podrías tener:
Col Mean( :count, :softness, :temperature )
Estoy tan acostumbrado a concatenando que sigo haciendo eso. Los viejos hábitos tardan en morir 
Además, en JMP 12 y más, con Fórmulas instantáneas en la tabla de datos, puede seleccionar esas columnas en la tabla, hacer clic con el botón derecho en uno de sus encabezados, seleccionar Nueva columna de fórmula> Agrupar por.

Luego, seleccione la columna de conteo, haga clic con el botón derecho en el encabezado, seleccione Nueva columna de fórmula> Agregado> Media

Esto diseñará la fórmula para ti automáticamente; Muy amigable para tus nuevos usuarios.
Esto es perfecto, y tan obvio una vez que lo indicas.
¡Gracias!
Hola @ih ,
Me encuentro haciendo esto muy a menudo. Una forma que me funciona es usar una fórmula de columna como Col Mean (: column, byvariable), y para el segundo parámetro uso una concatenación de las dos columnas categóricas directamente (en lugar de crear columnas adicionales en la tabla). Para el ejemplo del detergente que mencionaste, esto sería:
Col Mean( :count, :softness || :temperature )
¿Hace esto lo que necesitas o hay algo más que estás buscando?
@Julian