変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに機能しません。 これはそういう意味なのでしょうか?私が書いたスクリプト内の以前の「罪」を、全会一致の参照で更新することで修正しようとしています。つまり、別のテーブルが現在のテーブルであっても、スクリプトが私が指示したい(欲しい)1つのテーブルを参照するようにします。または「干渉」)テーブル。 以下の問題を再構成してみました。
Names Default To Here( 1 );
// this is the table i want to work with
dt = New Table( "Target table", invisible,
Add Rows( 3 ),
New Column( "Name_1",
Character( 1 ),
"Nominal",
Set Values( {"A", "B", "C"} ),
Set Display Width( 45 )
),
New Column( "Name_2",
Character( 1 ),
"Nominal",
Set Values( {"X", "Y", "Z"} ),
Set Display Width( 45 )
),
New Column( "NumericRight",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3] ),
Set Display Width( 78 )
),
New Column( "NumericAlso",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7, 8, 9] )
)
);
dt2 = New Table( "Interfering table", invisible,
Add Rows( 3 ),
New Column( "Name_1",
Character( 1 ),
"Nominal",
Set Values( {"D", "E", "F"} ),
Set Display Width( 45 )
),
New Column( "Name_2",
Character( 1 ),
"Nominal",
Set Values( {"U", "V", "W"} ),
Set Display Width( 45 )
),
New Column( "NumericInterference",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4, 5, 6] )
),
New Column( "MoreNumeric",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7, 8, 9] )
)
);
// get lists
lstName_1 = Associative Array( dt:Name_1 ) << Get Keys;
lstName_2 = Associative Array( dt:Name_2 ) << Get Keys;
colList = dt << Get Column Names( "Numeric" );
// window with radio buttons & col list box
New Window( "Select values",
Show Menu( 0 ),
Show Toolbars( 0 ),
Border Box( Top( 0 ), Bottom( 20 ), Left( 20 ), Right( 10 ),
H List Box(
Panel Box( "Name_1",
Radio Box(
Eval List( lstName_1 )
)
),
Panel Box( "Name_2",
Radio Box(
Eval List( lstName_2 )
)
),
Panel Box( "Numeric Columns",
clb = Col List Box( )
),
clb << Append( colList ); // making me cry ...
)
)
);
私が見たいもの:

「ターゲットテーブル」が現在のテーブルではない場合に常に表示される内容:

私を完全に混乱させているのは、名前を変更するときです。 dt2:数値干渉にdt2:NumericRight 、この結果が得られました:

dt2 がスクリプトに私が実行したい作業を実行させないのはなぜですか? dt2 で列の名前を変更すると、列リスト ボックスの内容に影響が出るのはなぜですか? 移動方法をいくつか試してみました列リスト変数をラップしてみました評価リスト() 、「運」なし。
コミュニティ内を再度検索すると、これを見つけました列リスト ボックスに入力する際にサポートが必要です。 別の解決策がある場合は、お知らせいただきありがとうございます。 あるいは、これはそういうことを意図しているのでしょうか、そうであれば、これはどういう意味ですか。
自動化とスクリプト作成Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?こんにちは、
一見すると、テーブル dt から数値列のリストを取得するには、以下の構文を使用するだけで済みます。
clb = Col List Box(dt, all, << Set Data Type ("numeric"))
また、Get Column Names は列ではなく名前のリストを返すため、「clb << append (collist)」という行がどのように機能するかは不明です。
最後に、Col List Box を複数のテーブルにわたって使用することはできないと思います (ここで間違っている場合は修正してください)。
最高、
TS
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?列リストボックスは、列リストボックスが作成されたときに「現在の」データテーブルから列を受け入れるだけのようです。
dt2 にそれぞれの列が含まれていない場合は、追加できません。
私は推測する
current data table(dt);
// window with radio buttons & col list box
New Window( "Select values",
あなたには選択肢がありませんか?
そうでない場合は、使用してください
clb = Col List Box( Data Table(dt) )
列リスト ボックスに使用するデータ テーブルを指定するには、次のようにします。

Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?ありがとう@ティエリー_S , 明日これを試してみます。 ただし、dt2 がスクリプトからコメントアウトされている場合、Col List Box は期待どおりに更新されるため、間違いなく機能します (元の投稿の最初のスクリーンショットも参照してください)。
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?@ホギ、ありがとう、これも明日試して結果をお知らせします。
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?@ティエリー_S 、奇妙なことに、そして残念ながら、これは機能しません。 最初に投稿したスクリプトに、あなたの提案に従って次の変更を加えました。
// this part was revised ...
Panel Box( "Numeric Columns",
clb = Col List Box( )
),
clb << Append( colList ); // making me cry ...
// ... to look like this.
Panel Box( "Numeric Columns",
clb = Col List Box( dt, all, << Set Data Type ( "numeric" ) ) // this adds the numeric columns from dt2. Why???
)
これにより、以下の結果が得られました。つまり、dt2 の数値列が列リスト ボックスに追加されましたが、私が欲しいのは dt の数値列です。

それでも、私にとって非常に有益な学びでした。 ありがとう!
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?
@レッセル書きました:
@ティエリー_S 、奇妙なことに、そして残念ながら、これは機能しません。</CODE></P><HR /></BLOCKQUOTE><P> </P><P>コードはほぼ正しいですが、使用する必要があります</P><PRE><CODE class=" language-jsl">clb = Col List Box(Data Table(dt), all, << Set Data Type ("numeric"))
あなたも使うことができます
clb = Col List Box(all, << Set Data Type ("numeric"), Data Table(dt))ただし、「インジケーター」*) Data Table() を忘れないでください。
前回の投稿 (下記) で示したように、スクリプト ガイドによれば、次のようにする必要があります。

列名の場合と同様、名前を使用するか参照を使用するかは関係ありません。
ただし、インジケーターのない単なる引数ではなく、データ テーブル (名前またはテーブル参照) である必要があります。
多くの場合、Data Table(name) はデータ テーブル参照に置き換えられる可能性があるため、これは少し誤解を招きます:)
ただし、ここでは、データ テーブルはオプションの引数です。したがって、Jmp がそれが何であるかを認識できるインジケーター *) が必要です。
※)「インジケーター」の正式名称は何ですか?
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?@ホギ、びっくりしました! 助けてくれてありがとう。
- もちろん、目的のテーブルを現在のテーブルにしても機能します。 どういうわけか、私はまだこれを避けたかったのです。
- ただし、以下のコードも機能します
Panel Box( "Numeric Columns",
clb = Col List Box(Data Table( dt ))
),
clb << Append( colList ); // this is still required, which I find interesting, since I thought the clb was already added above via Col List Box(...)
対照的に、以下の場合は機能しません。 むしろ、dt2 から数値列が追加されますが、これは私にとっては意味がありません。
Panel Box( "Numeric Columns",
clb = Col List Box(dt, all, << Set Data Type ( "numeric" )) // adds numeric columns from dt2 :(...
),
/*clb << Append( colList );*/ // doesn't matter whether this is commented out or not
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?こんにちは@レッセル。
正直に言いますが、少し当惑しました 
彼らは使うべきだった
Col List Box(<FROM data="https://community.jmp.com/" table=""></FROM>
オプションの引数として ... またはその他のもの - ただし、データテーブル("テーブル名")
- ちょっと誤解を招きますよね?
何年も Jmp ユーザーとして過ごしていると、式全体を次のように置き換えたくなります。 dt -そしてそれによって「インジケーター」を忘れます。
一方、データテーブルの引数としてテーブル名の代わりにテーブル参照を使用できるのは素晴らしいことです:)
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?あなたのようなユーザーの存在と助けは、スクリプト作成やその他の JMP 関連のスキルに関して、私を含む多くの人々を高めてくれます。 これは優しさであり、とても感謝しています。
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?@ティエリー_S 、 @ホギご参考までに - https://www.pega-analytics.co.uk/blog/handling-lists-of-columns/
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?リンクしていただきありがとうございます、 @David_Burnhamブログには素晴らしい宝石のコレクションが含まれています。
ディストリビューション プラットフォームの列参照に関する部分を読みました。
興味深い - スクリプトインデックスによると、次のとおりです。

「」がないので、 < >" Column() 引数の周りでは、次のように考えることができます。カラム()は 1 つのオプションではない引数です
- を使用しますか?カラム()列参照を生成する関数?
しかし、実際にはそれと同じですデータ表()前の議論で:
カラム()ですインジケータのためにオプション口論:
- どこにでも配置でき、省略することもできます
- 列または >=1 列のリスト (参照または名前として) を受け入れます - これが column() 関数ではないことを明確に示します
Scripting Index で、Columns() 引数の前後のドットが引数がオプションであることを示す別のエントリを見つけました。
ここでは、GUI と同様に Columns [複数形] です。 Y別名です。 どちらも機能に気を取られないようにするのに役立ちますカラム() 。

// aliasDistribution(Column("height"));
Distribution(:height); // doesn't work<BR /><BR />Distribution(Columns("name", :sex)); // accepts >=1 arguments; column references and names<BR />Distribution(Columns({"name", :sex})); // accepts lists
<BR />Distribution(Continuous Distribution(Column( :height ))); // Distribution can be used without a Column() argument<BR />
Distribution("dummy 1st entry", Columns("height")); // Column at non-first position -> works<BR /><BR />Distribution("hello"); // not necessary to provide a meaningful (first) argument<BR /><BR />Distribution(Columns("name")); // alias<BR />Distribution(Y("name"));
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?スクリプト ガイドには用語についての説明がいくつかありますスクリプトガイド > JSL スクリプトの作成の概要 > JSL 用語
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?
したがって、用語は次のとおりです名前付き引数
- 名前付き引数は常にオプションです - スクリプト インデックスに < > があってもなくても 
残念ながら、明示的には記載されていません:
この場合、名前付き引数の「インジケーター」の正式名は「名前「?
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?正式名称? インジケータ?
スクリプトガイド > JSL ビルディングブロック > JSL 構文ルール > 名前の JSL ルール
JSL では、名前は単に項目を呼び出すものです。 式内の変数に数値 3 を代入すると、 a = 3 、あるは名前です。
Re: 変数に格納されたリストを使用して列リスト ボックスを更新すると、期待どおりに動作しません。 これはそういう意味なのでしょうか?これが私を困惑させます。
私たちは、列("高さ" )で
Distribution(Columns("height"));は (オプション)名前付き引数。
それで、何ですかコラムでDistribution(列("高さ")); ?
文法の観点から見ると、それは名前付き引数に与えられた「名前」である可能性があります。
しかし、これは標準の定義と衝突します。名前JSLで。 (比較する:名前(x)として)
この質問をするのは私が最初ではないと思います。名前付きパラメータの名前には正式な名前があると思います。
しかし、幸運にもそれをドキュメントで見つけることができませんでした。
@Mark_Bailey ?