Re: jsl: ¿cómo trazar usando una lista de grupos?Lo más probable es que puedas hacerlo con algo como esto (necesitas EvalEvalExpr):
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Group Columns("group1", {"height", "weight"});
Eval(
EvalExpr(
dt << Oneway(
Y(Expr(dt << Get Column Group("group1"))),
X(:age)
)
)
);
Ver Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute para más información y ejemplos sobre Eval(EvalExpr())
Re: jsl: ¿cómo trazar usando una lista de grupos?
Bien, tengo esto, pero no estoy seguro de cómo puedo seguir creando nuevos términos dentro de la sección Y(.
¿algún consejo?
colgroupNames = dt << get column groups names;<BR /><BR />/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/<BR />ow1 = Oneway(<BR />Y( dtAggWide<<GET column="" group=""></GET>, dtAggWide<<GET column="" group=""></GET>, dtAggWide<<GET column="" group=""></GET>),<BR />X( :ChamberId ),<BR />//By(:),<BR /><BR />//All pairs Tukey HSD test<BR />All Pairs(<BR />1,<BR />Confidence Quantile( 0 ),<BR />Difference Matrix( 0 ),<BR />LSD Threshold Matrix( 0 ),<BR />Connecting Letters Report( 0 ),<BR />Ordered Differences Report( 1 )<BR />),<BR />//invisible, //use this to speed up.<BR />);dtAggWide = current data table();
dtAggWide << set name( "AggWide");
RecipeStepIndex ={"10.0.0.0.0.0", "11.0.0.0.0.0", "12.0.0.0.0.0"} // column groups names. Each group has 100+ columns.
//trying to create a series of charts using the groups, looping through the groups
ow1 = Oneway(
Y( for( i = 1, i<=Nitems( RecipeStepIndex), i++,
dtAggWide<<GET column="" group=""></GET>Re: jsl: ¿cómo trazar usando una lista de grupos?así que arranqué esta solución de @txnelson : https://community.jmp.com/t5/Discussions/Script-multiple-columns-grouped-in-distribution-plot/td-p/162557
pero me pregunto si hay una manera de simplemente recorrer los nombres de los grupos en lugar de hacer esta construcción de expresiones.
Names Default To Here( 1 );
dtAggWide = current data table();
dtAggWide << set name( "AggWide");
//get the column groups
colgroupNames = dt << get column groups names;
//temporary string for testing
RecipeStepIndex ={"10.0.0.0.0.0", "11.0.0.0.0.0", "12.0.0.0.0.0"}
// Build a character string that represents the commands that need to be run
theExpr_start = "ow1 = Oneway(
Y( dtAggWide<<GET column="" group=""></GET>Re: jsl: ¿cómo trazar usando una lista de grupos?Aquí hay una reescritura del código, eliminando la necesidad de construir expresiones.
Names Default To Here( 1 );
dt = Current Data Table();
dt<< set name( "AggWide" );
//get the column groups and put them into one long list
colgroupNames = dt << get column groups names;
colsList = {};
For( i = 1, i <= N Items( colgroupNames ), i++,
Insert Into( colsList, dt << get column group( colgroupNames[i] ) )
);
//temporary string for testing
RecipeStepIndex = {"10.0.0.0.0.0", "11.0.0.0.0.0", "12.0.0.0.0.0"};
// Build a character string that represents the commands that need to be run
ow1 = Oneway(
Y( Eval( colsList ) )
,
X( :ChamberID ),
//By(:),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
//invisible, //use this to speed up.
);
Re: jsl: ¿cómo trazar usando una lista de grupos?Muchas gracias, ninguna de mis lecturas de publicaciones había descubierto que la función de obtención ayudaba a extraer esa información.
Re: jsl: ¿cómo trazar usando una lista de grupos?Muchas gracias eso resolvió el problema.La lectura de mi publicación no había descubierto la función de obtener para extraer la información que necesitaba.
Re: jsl: ¿cómo trazar usando una lista de grupos?Lo siento, estoy luchando aquí.
No estoy seguro de por qué anidar el evalexpr?
¿No hay una manera de reemplazar el
Y( dtAggWide<<GET column="" group=""></GET>
con una lista de grupos de columnas?
Previamente creé esta lista, ¿cómo puedo cambiar este RecipeStepIndex en los grupos Y?
//Build and prefill an Array of names of the RecipeStepId
Summarize( dt, RecipeStepIndex = by( :RecipeStepId) );//get list of unique RecipeStepID's

jsl: ¿cómo trazar usando una lista de grupos?seguimiento de esta publicación: https://community.jmp.com/t5/Discussions/Script-to-loop-thru-and-group-columns-by-name-dynamically/mp/470274#M71439
Estoy agrupando más de 10k columnas en grupos por StepID, pero ahora intento trazarlas todas.
No puedo entender cómo decirle que trace por la lista de todos los grupos. ¿algún consejo?

/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( dtAggWide<<GET column="" group=""></GET>
Fusión y limpieza de datos