列名を検索し、JSL を使用してコードの一部を実行する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな
.jmp ファイルの列名を検索し、その列が存在する場合にのみいくつかの手順を実行する必要があるという要件があります。 この列検索をJSLに含めるにはどうすればよいですか?たとえば、列名が「A」、「B」、「C」、「D」のExcelファイルのデータがあります.列Dにはフィルターがあり、オプションは「はい」「いいえ」および「可能性があります」です. JSL を使用して、 Table->tabulate->option を使用してデータシートをグループ化しました。 列「D」のデータをグループ化しました。これで、「はい、いいえ、可能性があります」という列を持つテーブルがあります。 ここで、これらの列でオプション "may be" を検索したいと思います。 「かもしれない」が利用可能であれば、いくつかの手順を実行したいと思います。 そうでない場合は、他の手順を実行したいと思います。これをJSLに含めるにはどうすればよいですか?
Re: 列名を検索し、JSL を使用してコードの一部を実行する非常に役立つソリューション
Re: 列名を検索し、JSL を使用してコードの一部を実行するはい、動作します。 しかし、コードの実行を妨げているものがあります。
行テーブル(列のグループ化( :シリアルナンバー、 :によって作成された) )
)
) ;
新しい= dttab <<データ テーブルにする;
名前リスト= { 「APPR」 、 「SEQU APPR」 、 「シークハップ」 、 「ハップ」 、 「RJCT」 、 「SEQU RJCT」 、 「SEQU HREJ」 、 "HREJ" 、 「ドレック」 、 「SEQU DREQ」 } ; // これらのオプションでは、DREQ および SEQU DREQ 列の値が「0」の行を取得したいと考えています。 これらの 2 つの列は 1 または 0 の値を保持できますが、値が 0 の行は必要ありません。
main_names =新しい<<列名を取得する(弦) ;
ために(私= 1 、私<= Nアイテム(名前リスト) 、私++、
もしも(含む( main_names 、名前リスト[私] ) == 0 、
新しい<<新しい列(名前リスト[私] 、番号、 <<各値を設定( 1000 ) ) ; // これらのオプションにはすでに 0 または 1 があるため、各値を 1000 に設定します
) ;
) ;
上記のコードでは、列 DREQ と SEQU DREQ がある場合は常に、これらの列のいずれかに値が 0 であるすべての行が必要です。 これらの列が存在しない場合、値 1000 がコードに表示されています。 しかし、これらの列が存在する場合に 0 しか必要ないというこの条件を組み込むにはどうすればよいですか。私の質問を理解していただければ幸いです。
どうもありがとう
Re: 列名を検索し、JSL を使用してコードの一部を実行するあなたはほとんどそこにいます。後で参照できるように、すべてに名前を付ける必要があります。このコードは動作するはずです:
dt =データ表( "データシート" ) ;
dttab = dt <<集計する(
テーブルを追加(
列テーブル(列のグループ化( :ユーザー ステータス タスク) ) 、 //User Status Task は毎回異なるステータスを持ち、それぞれの値は 0 または 1 です。 データによっては毎回、一部のオプションが欠落している可能性があります。
行テーブル(列のグループ化( :シリアルナンバー、 :によって作成された) )
)
) ;
新しい= dttab <<データ テーブルにする;
名前リスト= { 「APPR」 、 「SEQU APPR」 、 「シークハップ」 、 「ハップ」 、 「RJCT」 、 「SEQU RJCT」 、 「SEQU HREJ」 、 "HREJ" 、 「ドレック」 、 「SEQU DREQ」 } ; //これらのオプションは、ドロップダウン リストの列「ユーザー ステータス タスク」の下にあります。 その列にデータが欠落しているため、毎回同じドロップダウンが表示されるわけではありません。
main_names =新しい<<列名を取得する(弦) ;
ために(私= 1 、私<= Nアイテム(名前リスト) 、私++、
もしも(含む( main_names 、名前リスト[私] ) == 0 、
新しい<<新しい列(名前リスト[私] 、番号、 <<各値を設定( 1000 ) ) ; // これらのオプションにはすでに 0 または 1 があるため、各値を 1000 に設定します
) ;
) ;
Re: 列名を検索し、JSL を使用してコードの一部を実行する部外者にとって、あなたのスクリプトは非常に紛らわしく、詳細な情報なしに何が問題なのかを正確に言うことは不可能です. 「なんらかのエラー」をさらに詳細に説明してみてください。
間違ったテーブルを指定したか、推論されたテーブルが存在しないことが推測されます。 あなたは少なくとも 4 つのデータ テーブルを扱っているようです。「データ シート」と呼ばれるテーブルと 3 つのテーブル変数です。 dt 、 create_list & surv_pt_main . これらすべてのテーブルを持っているか、使用していますか? たとえば、 dt 「データシート」の表より。 しかし、実際に使用することはありませんdt ?
Re: 列名を検索し、JSL を使用してコードの一部を実行するJSL は surv_pt_main 行にいくつかのエラーを示しています。
次のようにスクリプトを書きました。
dt=data table("データシート");
<<集計(
テーブルを追加(
Column Table( Grouping Columns( :User Status Task ) ), //User Status Task は毎回異なるステータスを持ち、それぞれの値は 0 または 1 です。 データによっては毎回、一部のオプションが欠落している可能性があります。
Row Table( Grouping Columns( :シリアル番号,:作成者) )
)))
<< データテーブルにする;
name_list={"APPR","SEQU APPR","SEQU HAPP","HAPP","RJCT","SEQU RJCT","SEQU HREJ","HREJ","DREQ","SEQU DREQ"}; //これらのオプションは、ドロップダウン リストの列「ユーザー ステータス タスク」の下にあります。 その列にデータが欠落しているため、毎回同じドロップダウンが表示されるわけではありません。
main_names=create_list<<列名を取得(文字列);
for(i=0,i<=nitems(name_list),i++,
if(contains(main_names,name_list を含む) )==0、
surv_pt_main<<新しい列(name_list ,Number,<<各値を設定(1000)); // これらのオプションにはすでに 0 または 1 があるため、各値を 1000 に設定します
);
);
誰かがこれで私を助けてくれることを願っています。
ありがとう
Re: 列名を検索し、JSL を使用してコードの一部を実行する私たちのデータでは、すべての回答が保証されているわけではないため、これを頻繁に行います。列がない場合は、追加して 0 を入れます。このようなもの:
// 欠落している列を挿入します。
名前リスト= { "現在" 、 "前" 、 "累積的な" } ;
main_names = surv_pt_main <<列名を取得する(弦) ;
// 列が欠落している場合は、0 のセットで追加します
ために(私= 1 、私<=アイテム(名前リスト) 、私++、
もしも(含む( main_names 、名前リスト[私])) == 0 、
surv_pt_main <<新しい列(名前リスト[私] 、番号、 <<各値を設定( 0 ))) ;
) ;
) ;