列名から列番号を取得するにはどうすればよいですか? (JMP)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />これは非常に単純な質問かもしれませんが、多くの検索とテストを行った後でも理解できません。列ダイアログ ボックスから列名しかわかっていない場合、特定の列の列番号を取得するにはどうすればよいですか?
最小化されたコード:
dlg = 列ダイアログ( dlg_firstParam = ColList( "最初のパラメータ"));
firstParam = dlg["dlg_firstParam"][1];
i = 5; // これはテストケースです。上のダイアログで 5 番目の列を選択するとします。これが機能する場合は、 i = 1 のループを ncol() に記述し、列名 ( i ) を最初のパラメーター名に対してテストします...しかし、機能しません。
show(列(i)); // 戻り値: Column("日付");
show(firstParam); // 戻り値: :Date;
show(列名(i)); // 戻り値: 日付;
//わかりました。上記の 2 行を考慮すると、:Date; の文字列の先頭にあるコロンを削除できるはずです。そして日付と比較します。以下のように。ほぼうまくいきそうです...
a = parse(right(expr(firstParam),length(expr(firstParam))));
(a)を表示します。 // 戻り値: 日付。
// OK、コロンが取り除かれます。
if(列名(i)==a,b = 1, 列名(i)!=a, b = 0);
(b)を示します。 // 0を返します
//////////////////
上記のコードは、ループできるかどうかを確認し、列名 ( i ) = firstParam の関数であるかどうかをテストするテストです。 うまくいくように見えますが、うまくいきません。 何か案は?
推奨される方法は、列番号を直接返すことです。ご協力いただければ幸いです。
(編集: コードの最後の変数をcolnumberからJMP以外のキーワードに変更するためのメモです。colnumberは予約されています。 それ以外の場合は正常に動作します。)
Re: 列名から列番号を取得するにはどうすればよいですか? (JMP)解決策をありがとう! データテーブルが回線上でアクティブでない場合のちょっとしたヒント
colname = Column( "height" ) << getname;
そうなると、この行は機能しなくなります。 ただし、データテーブルと列名の両方を指定した場合は、次のようになります。
colname = dt:height << getname;
完璧に機能します! 他の人が私のように電話を切らさないように、いくつかのアドバイスを提供するだけです 
Re: 列名から列番号を取得するにはどうすればよいですか? (JMP)ありがとうMSさん。コードの最後の行にある「colnumber」を JMP 以外のキーワードに変更することに注意してください。 それ以外の場合は正常に動作します。
私が一緒に働いている人は、番号を直接取得することで同様の解決策を提案しました。
コリストする= dt <<列名を取得する(弦) ;
firstParam_name =最初のパラメータ<<名前を取得する;
列番号=含まれています(コリストする、 firstParam_name ) ;
Re: 列名から列番号を取得するにはどうすればよいですか? (JMP)Loc() 関数を使用すると、すべての列名のリスト (データ テーブルと同じ順序) 内の列名の位置を見つけることができます。
例:
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
コリストする= dt <<列名を取得する(弦) ;
列名=桁( "身長" ) <<取得名;
列番号= (ロック(コリストする、列名))[ 1 】 ;