Passare il nome della colonna come argomento a una funzione - sta concatenando con: necessario?Di seguito è una funzione in cui sto cercando di passare il nome di una colonna per tracciare una distribuzione, ma non funziona. Mi chiedo qual è la sintassi corretta?
Names Default To Here (1);
getDistChart = Function({ColName}, {dC},
dC = Distribution( Continuous Distribution( Column( :ColName) ) );
return(dC);
);
//gt = getDistChart ("MyCol"); to test the function
Ho già aperto la tabella dati con MyCol come nome di colonna. Mi chiedo se devo concatenare
:
con il nome della colonna
ColName
Se sì, come (poiché la normale concatenazione con || || non sembra funzionare)?
Tabella datiSceneggiaturaRi: Passare il nome della colonna come argomento a una funzione - è concatenato con: necessario?Grazie @Mark_Bailey Questo funziona.
Ri: Passare il nome della colonna come argomento a una funzione - è concatenato con: necessario?Sì, funziona perfettamente per me con JMP Pro 16.1.0. Non ho versioni precedenti di JMP installate da testare. La tua versione ha circa 5 anni. JSL è in continua evoluzione, quindi è possibile che la mia sintassi non funzioni per una versione precedente.
È possibile contattare l'assistenza tecnica JMP ( support@jmp.com ) per un aiuto.
Potresti anche provare a usare le espressioni per ottenere ciò che desideri. Funzionano per qualsiasi versione di JMP, dalla versione 4. Vedi se questa versione funziona:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
getDistChart = Function( {ColName, _LSL, _USL}, {distChart},
Eval(
Substitute(
Expr(
distChart = New Window( "" || ColName || " distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( As Column( ColName ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Capability Analysis( LSL( _LSL ), USL( _USL ) )
),
SendToReport(
Dispatch(
{ ccc },
"Distrib Histogram",
FrameBox,
{DispatchSeg( LabelSeg( 1 ), {Font( "Segoe UI", 7, "Plain" )} ),
DispatchSeg( LabelSeg( 2 ), {Font( "Segoe UI", 7, "Plain" )} )}
)
)
)
);
),
Expr( ccc ), colName
)
);
Return( distChart );
);
getDistChart( "weight", 55, 185 );Ri: Passare il nome della colonna come argomento a una funzione - è concatenato con: necessario?@Mark_Bailey Grazie. L'esecuzione del tuo script mi dà quanto segue nel registro
Cannot find item "ColName" in outline context {ColName}
Per te funziona?
(Sono su JMP 13)
Ri: Passare il nome della colonna come argomento a una funzione - è concatenato con: necessario?Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
getDistChart = Function( {ColName, _LSL, _USL},
{distChart},
New Window( "" || ColName || " distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( As Column( ColName ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Capability Analysis( LSL( _LSL ), USL( _USL ) )
),
SendToReport(
Dispatch(
{colName},
"Distrib Histogram",
FrameBox,
{DispatchSeg( LabelSeg( 1 ), {Font( "Segoe UI", 7, "Plain" )} ),
DispatchSeg( LabelSeg( 2 ), {Font( "Segoe UI", 7, "Plain" )} )}
)
)
)
);
Return( distChart );
);
getDistChart( "weight", 55, 185 );Ri: Passare il nome della colonna come argomento a una funzione - è concatenato con: necessario?@Mark_Bailey Grazie funziona. Tuttavia, mi sto bloccando nell'avanzare al passaggio successivo. Vorrei passare il nome della colonna in più punti del mio script. Utilizzo di Big Class come esempio di seguito. Sono in grado di passare ColName a New Window ma non a Dispatch
Names Default To Here (1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
getDistChart = Function({ColName, _LSL, _USL}, {distChart},
New Window(""||ColName||" distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column(As Column (ColName) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Capability Analysis( LSL(_LSL ), USL(_USL) )
),
SendToReport(
Dispatch(
{"weight"},
"Distrib Histogram",
FrameBox,
{DispatchSeg( LabelSeg( 1 ), {Font( "Segoe UI", 7, "Plain" )} ),
DispatchSeg( LabelSeg( 2 ), {Font( "Segoe UI", 7, "Plain" )} )}
)
)
);
);
return(distChart);
);
getDistChart ("weight", 55, 185);
Ad esempio questo
Dispatch( {ColName},...
o questo da qui
Dispatch( {Expr(ColName)},...
non funziona. Qual è la sintassi corretta per passare una stringa come argomento per Invio?
Ri: Passare il nome della colonna come argomento a una funzione - è concatenato con: necessario?Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
getDistChart = Function( {ColName}, {dC},
dC = Distribution( Continuous Distribution( Column( As Column( colName ) ) ) );
Return( dC );
);
gt = getDistChart ("weight");