Ri: Come si sostituiscono i contenuti nella funzione con un segnaposto?Dai un'occhiata alle espressioni: devi usare le espressioni per farlo.Ecco un esempio che dovrebbe funzionare per te:
//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 )} )}
)
)
)
) )Ri: Come si sostituiscono i contenuti nella funzione con un segnaposto?Grazie per la tua risposta, usando ciò che hai inviato ho provato a creare una mia versione in cui verrà aggiunta a vars se non è vuota
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 />
Quando lo eseguo, avrà un errore
Nome irrisolto: X in accesso o valutazione di 'X' , X( colX[i] ) /*###*/
Ma se includo nell'istruzione vars sotto funziona
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 ))
};
Si prega di avvisare grazie!
Ri: Come si sostituiscono i contenuti nella funzione con un segnaposto?È necessario inserire espressioni nell'elenco.Con il prototipo Inserisci in (var, valore, posizione) , JMP eseguirà solo una ricerca del nome su var (non tenterà di valutare ciò che viene restituito dalla ricerca del nome), eseguirà una ricerca del nome e valuterà valore , ed eseguirà una ricerca del nome e valuterà posizione .Vuoi inserire un'espressione nell'elenco, quindi non vuoi che JMP valuti ciò che hai inserito nel file valore posizione.Tuttavia, JMP la valuterà _sempre_, quindi per mantenere un'espressione anche se JMP la valuta, racchiuderla in un Espr() funzione, in questo modo:
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]) )));
Ri: Come si sostituiscono i contenuti nella funzione con un segnaposto?Stai davvero cercando di rendere dinamico il generatore di grafici?Qualcosa come questo?
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});Ri: Come si sostituiscono i contenuti nella funzione con un segnaposto?Ciao vince grazie per aver risposto, sembra fantastico. Tuttavia, come si cambia il tipo di grafico in ecc. Linea di adattamento o grafico a barre poiché il metodo sopra funziona solo per grafici di tipo più uniforme.
Grazie!
Come si sostituiscono i contenuti nella funzione con un segnaposto?Il primo pezzo di codice è quanto mi piacerebbe che funzionasse ma non funziona.
Il secondo pezzo di codice funziona se sostituisco Variables (vars) con esso
C'è un modo per far funzionare il primo blocco? Si prega di avvisare se sto facendo qualcosa di sbagliato qui grazie. 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 ))
),
Modellazione statistica avanzataConsumatori e ricerche di mercatoProgettazione di esperimentiQualità e ingegneria di processofinestre