JMPスクリプトの質問<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はJMPスクリプトを学ぼうとしている新しいユーザーです。 私は非常に単純なスクリプトを作成しましたが、予想される結果に遭遇しました。 誰かが私がここで間違っていたことについてのポインタを私に与えることができるかもしれません。 前もって感謝します。 (ところで:私はJMP 8.02を使用しています)
私は以下のように非常に単純なテーブルを持っています(test1.csv):
| Tool_first | Tool_second | Process_time | Tool_third | グループ1 | Real_beta | ベース |
| A | C | 4/3/2011 0:53 | E | AE | 0.0058 | Y |
| A | C | 2011年4月3日1:08 | E | AE | 0.0058 | Y |
| A | C | 4/3/2011 5:27 | E | AE | 0.0058 | Y |
| A | C | 4/3/2011 6:26 | E | AE | 0.0058 | Y |
| A | D | 4/3/2011 6:39 | E | AE | 0.0058 | Y |
| A | C | 4/3/2011 6:49 | E | AE | 0.0058 | Y |
| A | C | 4/3/2011 18:43 | E | AE | 0.0058 | Y |
| A | C | 4/3/2011 23:42 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 5:20 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 8:34 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 10:43 | E | AE | 0.0058 | Y |
| A | D | 4/4/2011 11:02 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 13:57 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 14:28 | E | AE | 0.0058 | Y |
| A | D | 4/4/2011 16:43 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 20:01 | E | AE | 0.0058 | Y |
| A | C | 4/4/2011 20:17 | E | AE | 0.0058 | Y |
| A | D | 4/4/2011 21:45 | E | AE | 0.0058 | Y |
| A | C | 4/5/2011 18:20 | E | AE | 0.0058 | Y |
| A | D | 4/5/2011 20:02 | E | AE | 0.0058 | Y |
| A | C | 4/5/2011 20:35 | E | AE | 0.0058 | Y |
次のスクリプトは、.csvファイルを読み込み、1つの行とその前の行との比較に基づいて、さらに2つの列をテーブルに追加します。 私のスクリプトは以下の通りです
Source_Table = Open( "c:\ test1.csv");
Source_Table <<並べ替え((group_1、process_timeによる)、順序(昇順)、テーブルの置き換え);
新しい列( "Inspect_pt"、
式(
(row()== 1,1の場合)
(:group_1 [row()]!=:group_1 [row() - 1])、1、
(:group_1 [row()] ==:group_1 [row() - 1])、0)));
新しい列( "tool_Change"、
式(
(row()== 1,1の場合)
(:tool_second [row()]!=:tool_second [row() - 1])、1、
(:tool_second [row()] ==:tool_second [row() - 1])、0
)
)
;
show(現在のデータテーブル());
/ *最後の2列の値を出力しようとする* /
(i = 1、i 、:tool_Change ;);
結果テーブルはOKですが、スクリプトの最後の行は新しく作成された2つの列に結果を返しませんでした。 ログウィンドウは、インデックスが:: iになることを示しました。
出力テーブル
[欠けている画像]
しかし、ログウィンドウには最後の2つの列の結果が正しく表示されていないことが示されました。 間違ったインデックスを使用しましたか?ログウィンドウの出力はここにあります:
現在のデータテーブル:DataTable( "test1")
私:1
行数:1
:Inspect_pt [:: i]:。 < - これは正しくありません
:tool_Change [:: i]:。 < - これは正しくありません
私:2
行:2
:Inspect_pt [:: i]:。
:tool_Change [:: i]:。
私:3
行数:3
:Inspect_pt [:: i]:。
:tool_Change [:: i]:。
私:4
行数:4
:Inspect_pt [:: i]:。
:tool_Change [:: i]:。
JMPスクリプトの質問貴重な情報をありがとうございました。 このフォーラムは素晴らしいです。
JMPスクリプトの質問これは、先のプロセスの値を使って処理方法を決定するスクリプトを書くときに特に重要になります(例: サブセット化するには、Where(:tool_change == 1)を選択します。 このようなコードブロックの最後に「実行式」の行を挿入すると、JMPに一時停止し、保留中のすべての式を評価してから、スクリプトの残りの部分に進むように指示します。
私は 'eval formula'の振る舞いにはあまり慣れていません(私は通常 'run formula'を使用します - 習慣上の問題です)ので、これは推測ですが、特定のプロセスによっては状況に応じた違いが見られます。eval formula 'over' formula formula '(つまり、決定を下すために1つの式だけに関心がある場合は、その式のみに評価を指示し、残りの式の評価は後で保存することができます)。 ここでの違いは、実際にいくつの式の評価を行う必要があるか、そしていつそれらを実行したいかによって異なります。
JMPスクリプトの質問こんにちは
JMPは、次のコマンドに進む前に1つの「コマンド」を終了しません。「新しい列」のコマンドを読み取って実行を開始しますが、次のコマンドを読み取って実行し続けます。
ここで起こるのは、JMPが 'show'コマンドで最終行を読み取る前に、'New Column'コマンドが実行を終了していないことです(グラフィックを更新する必要があるため、特にこのタイプのコマンドにはしばらく時間がかかります)。このコマンドが実行されたときの列の値。
上記のように数式を 'フラッシュ'するか、'new column'コマンドに 'eval formula'を直接入力します。
新しい列( "タイトル"、数値、数式(:X1 *:X2)、評価数式)。
私が理解している限りでは、2つのアプローチは同じ効果があります。
マリアンヌ
シモンズ:私はJMPの出身ではない
JMPスクリプトの質問こんにちは
私はあなたがこの声明を必要とする理由を正確にはわかりません - 私はJMP技術サポートからそれを得ました。 おそらくJMPの誰かが説明できますか?
よろしく、
ピーター
JMPスクリプトの質問ありがとうPMroz。 それがトリックでした。 私自身の利益のために、何が起こっていたのか、なぜこれを機能させるのに追加の行が必要なのかを詳しく説明してください。 再度、感謝します
JMPスクリプトの質問この文でJMPの式バッファを「フラッシュ」してみます。
Source_Table <<式を実行します。
式の定義の後にこの行を追加してください。