列に値が含まれる場所を選択次のことを想定したスクリプトがあります。
1) ユーザーが複数のファイルを選択して開くことができるようにする
2) データのないファイル (つまり、NA という値が 1 つだけある列が 1 つだけ) を閉じます。
3) 列 7 に 1146 を含まないファイルをすべて閉じます (この列は、一部のファイルでは Sealer # と呼ばれ、他のファイルでは名前がありません。さらに、一部のファイルでは文字列であり、他のファイルでは数値列です)。
最初の 2 つはうまくいきましたが、3 つ目で苦労しています。 これが私がこれまでに持っているスクリプトです。
Files = Pick File(
"Select JMP File",
"$DESKTOP\Burst Data for Spencer",
{"Excel|csv;xlsx;xls", "JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"",
"multiple"
);
For( i = 1, i <= N Items( Files ), i++,
DT = Try( Open( Files[i] ) );
DT << Set Name( Files[i] );
If( N Cols( DT ) == 1,
Close( DT, No Save ),
Column( 7 ) << Data Type( Character );
check = DT << Get Rows Where( Contains( Column( 7 ), "1146" ) );
If( N Rows( check ) == 0,
Close( DT, No Save )
);
);
);
私が言える限り、問題はラインですチェック = DT<<どこで行を取得するか(含まれています(桁( 7 )、 「1146」 )); , しかし、それを修正する方法がわかりません。
助言がありますか?
Re: ポップアップ ウィンドウでユーザーに列の選択を求めるアドインをダウンロード フォルダーにダウンロードします
それからJMPに行き、
ファイル==>開く
ダウンロードフォルダーに移動します
「Runs Test.jmpadin」ファイルを 1 回クリックします。
次に、「開く」ボタンの下矢印に移動し、「
アドインビルダーを使用して開く
アドイン ビルダーで、[メニュー項目] タブを選択します。
次に、「テストの実行」エントリをクリックします。
「この JSL を実行」領域に、埋め込みスクリプトが表示されます。
切り取ってスクリプト ウィンドウに貼り付けます。
Re: ポップアップ ウィンドウでユーザーに列の選択を求めるジム、アドインを見つけました。スクリプト コードを確認するにはどうすればよいですか?
サム
Re: ポップアップ ウィンドウでユーザーに列の選択を求めるこんにちは、ジム、もっと具体的に教えてもらえますか?それは組み込みスクリプトですか?
ありがとう
サム
Re: ポップアップ ウィンドウでユーザーに列の選択を求める「Runs Test」の JMP アドインを調べることをお勧めします。このアドインには、サンプルで実行したいことを実行するサンプルが含まれています。 列を選択して選択ボックスに配置できるダイアログ ボックスが表示されます。 フィルタリング機能とリコール機能も備えています。
「実行テスト (Wald-Wolfowitz テスト) と JMP プラットフォームの JSL 実装」ダイアログ・ボックス
ポップアップ ウィンドウでユーザーに列の選択を求めるプロンプトを表示こんにちは、私はテーブルから 2 つの列の X 座標と別の Y 座標を選択するようにユーザーに促すスクリプトを作成しようとしています。
以下のグラフは、私がこのスクリプトで実行したいことです。 ユーザーが X、Y 座標を選択し、それを変数として渡すために使用します。 後でダイマッピングを行うためにスクリプトでこれが必要になります。何か案は?下のグラフは最終結果を示すフォトショップです。
ありがとう。

Re: 列に値が含まれる場所を選択するそのスクリプトセクションをデバッグしようとしましたが、動作させることができませんでした。 最終的に、わずかな変更を加えて機能するこのバージョンが完成しました。
For( i = 1, i <= N Items( Files ), i++,
DT = Try( Open( Files[i] ) );
Wait( 0 );
DT << Set Name( Files[i] );
If( N Cols( DT ) == 1,
Close( DT, No Save )
,
Column( DT, 7 ) << Data Type( Character );
Names Default To Here( 1 );
name = Char( Column( DT, 7 ) << get name );
Print( name );
Eval( Parse( "check = DT << Select Where( Contains( " || ":" || name || " , " || "char(1146)))" ) );
If( N Rows( DT << Get Selected Rows ) == 0,
Close( DT, No Save )
,
DT << Invert Row Selection;
DT << Delete Rows;
DT << Clear Select;
//oldname = char(DT<< Get Name());
//rename = char(Word(-1, oldname, "-"));
//DT<<SET name=""></SET>
Re: 列に値が含まれる場所を選択するこれはコードを少し変更したバージョンで、Get Rows Where ステートメントの値と check の値をリストしています。
Names Default To Here( 1 );
Files = Pick File(
"Select JMP File",
"$DESKTOP\Burst Data for Spencer",
{"Excel|csv;xlsx;xls", "JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"",
"multiple"
);
For( i = 1, i <= N Items( Files ), i++,
DT = Try( Open( Files[i] ) );
Wait( 0 );
DT << Set Name( Files[i] );
If( N Cols( DT ) == 1,
Close( DT, No Save ),
Column( DT, 7 ) << Data Type( Character );
Names Default To Here( 1 );
//Current Data Table( DT );
Eval(
Parse(
"check = DT << Get Rows Where( Contains( " || ":" || Char( Column( DT, 5 ) << get name ) || " , \!"1146\!" ) ) );"
)
);
Show(
"check = DT << Get Rows Where( Contains( " || ":" || Char( Column( DT, 7 ) << get name ) || " , \!"1146\!" ) ) );",
check
);
If( N Rows( check ) == 0,
Close( DT, No Save )
);
);
);
これに対して JMP デバッガを実行するとよいでしょう。 私の推測では、列 7 またはそのようなものとの不一致があると考えられます。 列の値に 1146 が含まれるいくつかの行を含む列を持つサンプル データ テーブルでテストしたので、コードが機能することはわかりました。
Re: 列に値が含まれる場所を選択するこのセクションをスクリプトに入れてみましたが、うまくいかないようです。 空のファイルは閉じられますが、データがあり、1146 を含むファイルは閉じられます。 If(NRows(check)==0 を !=0 に変更してみましたが、違いはないようです。 そして、このエラーがログに表示されます。
予期せぬ「)」。 おそらく「;」が欠落している可能性があります。また "、"。
1 行目 64 列: ...( :Sealer # , "1146" ) ) ►);...
無視された残りのテキストは、
更新されたスクリプトは次のとおりです。
Files = Pick File(
"Select JMP File",
"$DESKTOP\Burst Data for Spencer",
{"Excel|csv;xlsx;xls", "JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"",
"multiple"
);
For( i = 1, i <= N Items( Files ), i++,
DT = Try( Open( Files[i] ) );
DT << Set Name( Files[i] );
If( N Cols( DT ) == 1,
Close( DT, No Save ),
Column( 7 ) << Data Type( Character );
Names Default To Here( 1 );
Current Data Table( DT );
Eval(
Parse( "check = DT << Get Rows Where( Contains( " || ":" || Char( Column( 7 ) << get name ) || " , \!"1146\!" ) ) );" )
);
If( N Rows( check ) == 0,
Close( DT, No Save )
);
);
);
Re: 列に値が含まれる場所を選択するこのコードは機能します
Names Default To Here( 1 );
dt = Current Data Table();
Eval( Parse( "check = DT << Get Rows Where( Contains( " || ":" ||
Char( Column( 3 ) << get name ) || " , \!"1146\!" ) ) );" ) );