列名を引数として関数に渡す - : で連結する必要がありますか?以下は、分布をプロットするために列名を渡そうとしている関数ですが、機能しません。 正しい構文は何なのか疑問に思っています。
Names Default To Here (1);
getDistChart = Function({ColName}, {dC},
dC = Distribution( Continuous Distribution( Column( :ColName) ) );
return(dC);
);
//gt = getDistChart ("MyCol"); to test the function
列名として MyCol を含むデータテーブルがすでに開いています。 連結する必要があるかどうか迷っています
:
列名と一緒に
ColName
もしそうなら、どのようにして( || || との通常の連結は機能していないようです)?
データ表スクリプト作成Re: 列名を関数の引数として渡す - : で連結する必要がありますか?ありがとう@Mark_Baileyこれは機能します。
Re: 列名を関数の引数として渡す - : で連結する必要がありますか?はい、JMP Pro 16.1.0 では完璧に動作します。 テスト用に以前のバージョンの JMP がインストールされていません。 あなたのバージョンは約 5 年前のものです。 JSL は常に進化しているため、私の構文が以前のバージョンでは機能しない可能性があります。
JMP テクニカル サポート ( support@jmp.com )助けを求めて。
式を使用して目的を達成することもできます。 これらは、バージョン 4 以降の JMP のどのバージョンでも機能します。 このバージョンが動作するかどうかを確認します。
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 );Re: 列名を関数の引数として渡す - : で連結する必要がありますか?@Mark_Baileyありがとう。 スクリプトを実行すると、ログに次の情報が記録されます
Cannot find item "ColName" in outline context {ColName}
それはあなたにとって効果がありますか?
(私はJMP 13を使用しています)
Re: 列名を関数の引数として渡す - : で連結する必要がありますか?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 );Re: 列名を関数の引数として渡す - : で連結する必要がありますか?@Mark_Baileyおかげでうまくいきました。 しかし、次のステップに進むのに行き詰まっています。 スクリプト内のいくつかの場所に列名を渡したいと考えています。 以下の例として Big Class を使用します。 ColName を新しいウィンドウに渡すことはできますが、ディスパッチには渡すことができません
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);
たとえばこれ
Dispatch( {ColName},...
またはこれここから
Dispatch( {Expr(ColName)},...
動作しません。 Dispatch の引数として文字列を渡すための正しい構文は何ですか?
Re: 列名を関数の引数として渡す - : で連結する必要がありますか?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");