jsl: Wie plotte ich anhand einer Liste von Gruppen?im Anschluss an diesen Beitrag: https://community.jmp.com/t5/Discussions/Script-to-loop-thru-and-group-columns-by-name-dynamically/mp/470274#M71439
Ich gruppiere mehr als 10.000 Spalten nach StepID in Gruppen, versuche aber jetzt, sie alle darzustellen.
Ich kann nicht ganz herausfinden, wie ich es anweisen kann, anhand der Liste aller Gruppen zu zeichnen. irgendein Rat?

/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( dtAggWide<<GET column="" group=""></GET>
Datenmischung und -bereinigungBetreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?Vielen Dank, dass das Problem gelöst wurde.Bei der Lektüre meines Beitrags war die Get-Funktion zum Abrufen der von mir benötigten Informationen nicht entdeckt worden.
Betreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?Vielen Dank, keiner meiner Beitragsleser hatte die Get-Funktion entdeckt, die dabei hilft, diese Informationen herauszuholen.
Betreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?Hier ist eine Neufassung des Codes, die die Erstellung von Ausdrücken überflüssig macht
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.
);
Betreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?Also habe ich diese Lösung herausgerissen @txnelson : https://community.jmp.com/t5/Discussions/Script-multiple-columns-grouped-in-distribution-plot/td-p/162557
Aber ich frage mich, ob es eine Möglichkeit gibt, einfach die Gruppennamen zu durchlaufen, anstatt diese Ausdrucksbildung durchzuführen.
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>Betreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?
OK, ich habe das hier, aber ich bin mir nicht sicher, wie ich die Schleife fortsetzen und neue Begriffe innerhalb des Y(-Abschnitts erstellen kann.
irgendein Rat?
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>Betreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?Es tut mir leid, ich habe hier Probleme.
Ich bin nicht sicher, warum der evalexpr verschachtelt wird.
Gibt es keine Möglichkeit, das zu ersetzen?
Y( dtAggWide<<GET column="" group=""></GET>
mit einer Liste von Spaltengruppen?
Ich habe diese Liste zuvor erstellt. Wie kann ich diesen RecipeStepIndex in die Y-Gruppen austauschen?
//Build and prefill an Array of names of the RecipeStepId
Summarize( dt, RecipeStepIndex = by( :RecipeStepId) );//get list of unique RecipeStepID's

Betreff: jsl: Wie zeichnet man mithilfe einer Gruppenliste auf?Sie können es höchstwahrscheinlich mit etwas wie diesem tun (Sie benötigen 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)
)
)
);
Sehen Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden Weitere Informationen und Beispiele zu Eval(EvalExpr())