Betreff: Wie ersetze ich Inhalte in der Funktion durch einen Platzhalter?Sehen Sie sich Ausdrücke an – Sie müssen dazu Ausdrücke verwenden.Hier ist ein Beispiel, das für Sie funktionieren sollte:
//Define variables for X, X1, X2, Y, Y1, Y2, and Group X
vars = {X(colX[i]), X(colX1[i], Position( 1 )), X(colX2[i], Position( 1 ))
,
Y(colY[i]), Y(colY1[i], Position( 1 )), Y(colY2[i], Position( 1 ))
};
If( Is Missing(colGroupX[i]) != 1,
vars = Insert Into( vars, Group X( colGroupX[i] ) )
);
vars = Substitute( vars, {}, Expr( Variables() ) );
Eval( Eval Expr(
GB = Current Data Table() << Graph Builder(
Size( 1413, 999 ),
Expr( Name Expr( vars ) ),
Elements(
Points( X( 1 ), X( 2 ), X( 3 ), Y( 1 ), Y( 2 ), Legend( 11 ) ),
Smoother( X( 1 ), X( 2 ), Y( 3 ), Y( 1 ), Y( 2 ), Legend( 14 ) )
),
SendToReport(
Dispatch( {}, "Graph", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
)
)
)
) )Betreff: Wie ersetze ich Inhalte in der Funktion durch einen Platzhalter?Vielen Dank für Ihre Antwort. Mit dem, was Sie gesendet haben, habe ich versucht, eine eigene Version zu erstellen, in der sie in vars eingefügt wird, wenn sie nicht leer ist
If( Is Missing(colGroupX[i]) != 1, Insert Into( vars, Group X(colGroupX[i]))); vars = {};
If( Is Missing(colX[i]) != 1, Insert Into( vars, X(colX[i])));
If( Is Missing(colX1[i]) != 1, Insert Into( vars, X(colX1[i], Position( 1 ))));
If( Is Missing(colX2[i]) != 1, Insert Into( vars, X(colX2[i], Position( 1 ))));
If( Is Missing(colX3[i]) != 1, Insert Into( vars, X(colX3[i], Position( 1 ))));
If( Is Missing(colX4[i]) != 1, Insert Into( vars, X(colX4[i], Position( 1 ))));
If( Is Missing(colY[i]) != 1, Insert Into( vars, Y(colY[i])));
If( Is Missing(colY1[i]) != 1, Insert Into( vars, Y(colY1[i], Position( 1 ))));
If( Is Missing(colY2[i]) != 1, Insert Into( vars, Y(colY2[i], Position( 1 ))));
If( Is Missing(colY3[i]) != 1, Insert Into( vars, Y(colY3[i], Position( 1 ))));
If( Is Missing(colY4[i]) != 1, Insert Into( vars, Y(colY4[i], Position( 1 )))); <BR />
Wenn ich es ausführe, wird es einen Fehler haben
Name nicht aufgelöst: X im Zugriff oder Auswertung von 'X' , X( colX[i] ) /*###*/
Aber wenn ich in die vars-Anweisung unten einschließe, funktioniert es
vars = {X(colX[i]), X(colX1[i], Position( 1 )), X(colX2[i], Position( 1 ))
,
Y(colY[i]), Y(colY1[i], Position( 1 )), Y(colY2[i], Position( 1 ))
};
Bitte um Rat danke!
Betreff: Wie ersetze ich Inhalte in der Funktion durch einen Platzhalter?Sie müssen Ausdrücke in die Liste einfügen.Mit dem Prototyp Einfügen in (Var, Wert, Position) , führt JMP nur eine Namenssuche durch Var (versucht nicht auszuwerten, was auch immer von der Namenssuche zurückgegeben wird), führt eine Namenssuche durch und wertet aus Wert , und führt eine Namenssuche und -auswertung durch Position .Sie möchten einen Ausdruck in die Liste einfügen – daher möchten Sie nicht, dass JMP auswertet, was Sie in die eingefügt haben Wert Position.JMP wertet ihn jedoch _immer_ aus. Um also einen Ausdruck beizubehalten, obwohl JMP ihn auswertet, schließen Sie ihn in ein ein Ausdruck() Funktion, so:
vars = {};
If( Is Missing(colX[i]) != 1, Insert Into( vars, Expr( X(colX[i]) )));
If( Is Missing(colX1[i]) != 1, Insert Into( vars, Expr( X(colX1[i], Position( 1 )) )));
If( Is Missing(colX2[i]) != 1, Insert Into( vars, Expr( X(colX2[i], Position( 1 )) )));
If( Is Missing(colX3[i]) != 1, Insert Into( vars, Expr( X(colX3[i], Position( 1 )) )));
If( Is Missing(colX4[i]) != 1, Insert Into( vars, Expr( X(colX4[i], Position( 1 )) )));
If( Is Missing(colY[i]) != 1, Insert Into( vars, Expr( Y(colY[i]) )));
If( Is Missing(colY1[i]) != 1, Insert Into( vars, Expr( Y(colY1[i], Position( 1 )) )));
If( Is Missing(colY2[i]) != 1, Insert Into( vars, Expr( Y(colY2[i], Position( 1 )) )));
If( Is Missing(colY3[i]) != 1, Insert Into( vars, Expr( Y(colY3[i], Position( 1 )) )));
If( Is Missing(colY4[i]) != 1, Insert Into( vars, Expr( Y(colY4[i], Position( 1 )) )));
If( Is Missing(colGroupX[i]) != 1, Insert Into( vars, Expr( Group X(colGroupX[i]) )));
Betreff: Wie ersetze ich Inhalte in der Funktion durch einen Platzhalter?Versuchen Sie wirklich, den Graph Builder dynamisch zu machen?Etwas wie das?
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
some_func = function({dt, list_x, list_y, list_group_x={}},
{varExpr, i},
varExpr=Expr(Variables());
for(i=1, i<=nitems(list_x), i++,
insert into(varExpr, EvalExpr(X(Expr(list_x[i]))));
);
for(i=1, i<=nitems(list_y), i++,
insert into(varExpr, EvalExpr(Y(Expr(list_y[i]))));
);
for(i=1, i<=nitems(list_group_x), i++,
insert into(varExpr, EvalExpr(Group X(Expr(list_group_x[i]))));
);
Eval(Substitute(
Expr(
dt << Graph Builder(
Size( 696, 578 ),
DV_VARS
)
),
Expr(DV_VARS), nameexpr(varExpr)
))
);
some_func(dt, {:weight}, {:height, :height});
some_func(dt, {:weight, :weight}, {:height}, {:age});Betreff: Wie ersetze ich Inhalte in der Funktion durch einen Platzhalter?Hallo Vince, danke für die Antwort, das sieht toll aus. Wie ändern Sie jedoch den Diagrammtyp in usw. Anpassungslinie oder Balkendiagramm, da die obige Methode nur für glattere Diagramme funktioniert.
Danke!
Wie ersetzt man Inhalte in der Funktion durch einen Platzhalter?Im ersten Teil des Codes geht es darum, wie sehr es mir gefällt, aber es funktioniert nicht.
Der zweite Codeabschnitt funktioniert, wenn ich Variables( vars) durch ihn ersetze
Gibt es eine Möglichkeit, den ersten Block zum Laufen zu bringen? Bitte informieren Sie mich, wenn ich hier etwas falsch mache. Vielen Dank. JMP16
//Define variables for X, X1, X2, Y, Y1, Y2, and Group X
vars = {X(colX[i]), X(colX1[i], Position( 1 )), X(colX2[i], Position( 1 )),
Y(colY[i]), Y(colY1[i], Position( 1 )), Y(colY2[i], Position( 1 ))<BR /> };<BR /><BR /> //If colGroupX[i] is not missing, add Group X statement to the variables block
If( Is Missing(colGroupX[i]) != 1,
vars = Insert Into( vars, Group X( colGroupX[i] ) )
);<BR /><BR />// Graph builder code where vars is inserted into the variables <BR /><BR /> GB = Current Data Table() << Graph Builder(
Size( 1413, 999 ),
Variables( vars ), // vars is placed here
Elements(
Points( X( 1 ), X( 2 ), X( 3 ), Y( 1 ), Y( 2 ), Legend( 11 ) ),
Smoother( X( 1 ), X( 2 ), Y( 3 ), Y( 1 ), Y( 2 ), Legend( 14 ) )
),
SendToReport(
Dispatch(
{},
"Graph",
ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
)
)
);
Variables(
X(colX[i]),
X(colX1[i], Position( 1 )),
X(colX2[i], Position( 1 )),
Y(colY[i]),
Y(colY1[i], Position( 1 )),
Y(colY2[i], Position( 1 ))
),
Erweiterte statistische ModellierungVerbraucher- und MarktforschungVersuchsplanungQualitäts- und VerfahrenstechnikWindows