Übergeben des Spaltennamens als Argument an eine Funktion – ist eine Verkettung mit: erforderlich?Unten ist eine Funktion, bei der ich versuche, einen Spaltennamen zum Plotten einer Verteilung zu übergeben, aber es funktioniert nicht. Ich frage mich, was die richtige Syntax ist?
Names Default To Here (1);
getDistChart = Function({ColName}, {dC},
dC = Distribution( Continuous Distribution( Column( :ColName) ) );
return(dC);
);
//gt = getDistChart ("MyCol"); to test the function
Ich habe die Datentabelle mit MyCol als Spaltenname bereits geöffnet. Ich frage mich, ob ich sie verketten muss.
:
mit dem Spaltennamen
ColName
Wenn ja, wie (da die normale Verkettung mit || || nicht zu funktionieren scheint)?
DatenzugriffDatenzusammenführung und -bereinigungDatenexploration und -visualisierungVersuchsplanungMassenanpassungBetreff: Spaltenname als Argument an eine Funktion übergeben - Verkettung mit : erforderlich?Vielen Dank @Mark_Bailey Das funktioniert.
Betreff: Spaltenname als Argument an eine Funktion übergeben - Verkettung mit : erforderlich?Ja, es funktioniert perfekt für mich mit JMP Pro 16.1.0. Ich habe keine früheren Versionen von JMP zum Testen installiert. Deine Version ist etwa 5 Jahre alt. JSL wird ständig weiterentwickelt, daher ist es möglich, dass meine Syntax für eine frühere Version nicht funktioniert.
Sie können sich an den technischen Support von JMP wenden ( support@jmp.com ) für Hilfe.
Sie können auch versuchen, Ausdrücke zu verwenden, um das zu erreichen, was Sie wollen. Sie funktionieren für jede Version von JMP, seit Version 4. Sehen Sie, ob diese Version funktioniert:
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 );Betreff: Spaltenname als Argument an eine Funktion übergeben - Verkettung mit : erforderlich?@Mark_Bailey Vielen Dank. Das Ausführen Ihres Skripts gibt mir Folgendes im Protokoll
Cannot find item "ColName" in outline context {ColName}
Funktioniert es für Sie?
(Ich bin auf JMP 13)
Betreff: Spaltenname als Argument an eine Funktion übergeben - Verkettung mit : erforderlich?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 );Betreff: Spaltenname als Argument an eine Funktion übergeben - Verkettung mit : erforderlich?@Mark_Bailey Danke es funktioniert. Allerdings komme ich beim nächsten Schritt nicht weiter. Ich möchte den Spaltennamen an mehreren Stellen in meinem Skript übergeben. Verwenden Sie Big Class als Beispiel unten. Ich kann den ColName an New Window übergeben, aber nicht an 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);
Zum Beispiel diese
Dispatch( {ColName},...
oder dieses von hier
Dispatch( {Expr(ColName)},...
funktioniert nicht. Was ist die korrekte Syntax, um eine Zeichenfolge als Argument für Dispatch zu übergeben?
Betreff: Spaltenname als Argument an eine Funktion übergeben - Verkettung mit : erforderlich?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");