動作しない場所()を選択<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はJMPで単純な "Select Where()"ステートメントを作成しようと多くの時間を費やしましたが、うまくいきませんでした。
これが私が使おうとしていたコード行です。
| dtData << select where(yParamList <= minLimList ; |
yParamList 有効な列です
minLimListは有効な数値です
これらのフォーラムのいくつかを読んだ後、私は誰かがそれをすべて文字列に入れてからそれを解析することを提案しているのを見つけたので、私は上記のコードをこれに変更しました:
| select_string = "dt << select where(" || ":" || yParamNames || "<" || char(minLimList )|| ");"; |
| eval(parse(select_string)); |
yParamNames yParamListの単なる名前バージョンです。元のコードから。
私の質問は、なぜ私のオリジナルのコードが動かないのですか?
これが、文字列を使うことが推奨されていたリンクとeval(parse(string))です。
ありがとう
再:どこで()が動作していないかを選択ありがとう。それは私を夢中にさせていました。 As Column()関数を見ましたが、JMPがそれがcolumnであることを認識するのに十分スマートではないと信じられないため、気にしませんでした。 ある時点で、私は列を持っていました(dtData、yParamList そこにも)ステートメント。
問題は、コードを差し込んでからスクリプトが約420列×4000行のループを実行するのに約15秒かかったことです。回避策として使用した文字列/解析メソッドを使用して約2秒で実行されたため、これは奇妙だと思いました。文字列/解析メソッドは実際にははるかに効率的であるようです... 図に行きます。
再:どこで()が動作していないかを選択yParamListを囲むようにしてください As Column()内にあります。
これはJMP 10で機能します。
dtData = 開いた ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
yParamList = dtData << 列名を取得する ;
minLimList = { 12年 、 14年 } ;
私 = 2 ;
dtData << 場所を選択 ( 列として ( yParamList [ 私 ]) <= minLimList [ 私 ]) ;