Cómo agrupar por script para manejar un número flexible de gruposHola,
Trabajando en la automatización de análisis y necesidad de hacer que el script generado automatizado sea más genérico.
El flujo de trabajo consiste en crear una tabla de resumen agrupada por tres columnas con cuatro columnas obteniendo valores derivados. Eso está bien.
Ahora quiero crear gráficos unidireccionales con una de las variables de agrupación originales y también agrupar aún más los gráficos por una segunda variable.
Agrupación: ciclo, paso, paso único
4 pasos agrupados unidireccional por ciclo separados.
El script generado automáticamente funciona bien en mi archivo de prueba. La cuestión es cómo hacerlo más genérico.
Si miro el script, hay llamadas específicas para el valor de la columna del paso
<< {Organizar en filas (4)}, Donde (: Paso == 1), Donde (: Paso == 1))
Y en el caso de prueba hay 19 valores para el paso. ¿Cómo debería hacer esto para que sea flexible al número de pasos? Varios archivos tendrán diferentes números de pasos. ¿Cuáles son las mejores prácticas aquí? Mi resultado deseado es tener las cuatro gráficas en una fila con el cuadro de agrupación que también tiene el valor del paso que se muestra (ahora está en texto pequeño después de las gráficas) y robots a la cantidad de pasos que podría tener un archivo entrante.
Andy
dt1=Data Table( dt) <<SUMMARY></SUMMARY>
ScriptingRe: Cómo guiar el grupo por para manejar números flexibles de gruposHizo algunos progresos.
La mayor parte del trabajo se puede manejar utilizando el operador "Por".
Aún así, lo que falta es cómo organizar los grupos en grupos de 4 para que las parcelas de cada grupo estén en la misma línea.
Alguna idea
Andy
view = dt1 << Oneway(
Y( {:"Min(TV Pres (torr))"n ,:"Min(DS Pres (torr))"n,:"Max(TV Pres (torr))"n, :"Max(DS Pres (torr))"n}),
X( :Cycle ),
by (:Step),
Quantiles( 1 ),
Means( 1 ),
Mean Diamonds( 0 ),
Box Plots( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
Grand Mean( 0 ),
SendToReport(
Dispatch( {}, "Quantiles", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Oneway Anova", OutlineBox, {Close( 1 )} ),
Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} )
)
);Re: Cómo guiar el grupo por para manejar números flexibles de gruposA continuación se muestra un ejemplo que coloca los 4 gráficos en una sola fila y una fila para cada columna especificada en el análisis.

Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA\big class.jmp" );
// restrict to 4 ages to match the 4 level requirement
dt1 << select where( :age >= 16 );
dt1 << delete rows;
// Create a window to place the output in
nw = New Window( "test", lub = Lineup Box( N Col( 4 ) ) );
// Run the analysis with a By clause
view = dt1 << Oneway(
invisible,
Y( :height, :weight ),
X( :sex ),
Quantiles( 1 ),
Means( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
by( :age ),
SendToReport(
Dispatch( {}, "Quantiles", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Oneway Anova", OutlineBox, {Close( 1 )} ),
Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} )
)
);
// Take the elements from the outout and place in the window
// The display produces all levels of the by across one level
// of by group and then moves onto the next by group. Therefore
// the displays need to be picked across the full range of outputs
// to get the four grqaphs aligned
numCols = N Items( view ) / 4;
For( col = 1, col <= numCols, col++,
For( theRow = 1, theRow <= 4, theRow++,
lub << append( Report( view[(theRow - 1) * numCols + col] ) );
i++;
)
)
;
Re: Cómo guiar el grupo por para manejar números flexibles de gruposHola,
Recibo un error alrededor de la llamada i ++ en el último bit del código. No veo una variable, i, inicializada anteriormente en el código. ¿A que se refiere?
Andy