Passaggio del nome della colonna come argomento a una funzione: è necessaria la concatenazione con :?Di seguito è riportata una funzione in cui sto provando a passare un nome di 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
In tal caso, come (dato che la normale concatenazione con || || sembra non funzionare)?
Accesso ai datiFusione e pulizia dei datiEsplorazione e visualizzazione dei datiProgettazione degli esperimentiPersonalizzazione di massaRi: 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 alcuna versione precedente di JMP installata per il test. 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 il supporto tecnico di JMP ( support@jmp.com ) per un aiuto.
Potresti anche provare a utilizzare le espressioni per ottenere ciò che desideri. Funzionano per qualsiasi versione di JMP, a partire dalla versione 4. Verifica 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 ritrovo bloccato ad avanzare al passaggio successivo. Vorrei passare il nome della colonna in diversi punti del mio script. Usando Big Class come esempio qui sotto. 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 Dispatch?
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");