こんにちは私は両方の列を選択し、基本的なデルタXY式を使用するダイアログを使用して選択したい2つの列間の基本的なデルタを試しています。しかし、私はこのための正しい構文を考え出すことができないようです。 数式は、作成されている新しい列に持ち込まれていません。my_Xフィールドとmy_Yフィールドの上にカーソルを置くと、正しい名前が表示されます。 アドバイスできますか…
dt_values = 現在のデータ表 () ;
cdlg = 列ダイアログ ( yCols = ColList ( 「POR」 、 MinCol ( 1 ) 、 MaxCol ( 1 ) ) ) ;
my_Y = cdlg [ "yCols" ] ;
cdlg = 列ダイアログ ( xCols = ColList ( "差分" 、 MinCol ( 1 ) 、 MaxCol ( 1 ) ) ) ;
my_X = cdlg [ "xCols" ] ;
dt_values << 新しい列 ( "デルタ" 、数値 、フォーマット ( 「固定12月」 、 10年 、 2 ) 、式 ( カラム ( my_X [ 1 ]) ) - ( カラム ( my_Y [ 1 ])) ;
基本テーブル
両方のコードをありがとう、彼らは両方ともうまくいった。 私は2番目のものを使いました:-)
私はあなたの推奨に従ってモーダルを検討しますが、多くのスクリプトが現在ダイアログ機能を現在使用しているので、ダイアログが将来も機能するかどうかについて興味があります。
これがあなたのスクリプトの解決策です。
dt_values = Current Data Table();
cdlg = Column Dialog( yCols = ColList( "POR", MinCol( 1 ), MaxCol( 1 ) ) );
my_Y = cdlg["yCols"];
cdlg = Column Dialog( xCols = ColList( "Diff", MinCol( 1 ), MaxCol( 1 ) ) );
my_X = cdlg["xCols"];
dt_values << New Column( "Delta",
Numeric,
Format( "Fixed Dec", 10, 2 ),
formula( eval(my_X[1] ) - eval( my_Y[1] ))
);
ただし、コードのより良いバージョンは次のとおりです。
dt_values = Current Data Table();
cdlg = Column Dialog( yCols = ColList( "POR", MinCol( 1 ), MaxCol( 1 ) ) ,xCols = ColList( "Diff", MinCol( 1 ), MaxCol( 1 ) ) );
my_Y = cdlg["yCols"];
my_X = cdlg["xCols"];
Eval(
Substitute(
Expr(
dt_values << New Column( "Delta", Numeric, Format( "Fixed Dec", 10, 2 ), formula( _x_ - _y_ ) )
),
Expr( _x_ ), Parse( ":" || Char( my_X[1] ) ),
Expr( _y_ ), Parse( ";" || Char( my_Y[1] ) )
));
最後のコメント:JMPはColumn Dialog関数の値を下げ、ユーザーに "モーダル" New Window()関数を使うように指示しました。 あなたはこれを行う方法についてのイラストを見ることができます:
ヘルプ==>本==>スクリプトガイド
JMP 11.1を使用して申し訳ありませんが、そのオプションは利用できません。
こんにちはビル、
目的の2つの列を強調表示してから、列見出しを右クリックして、新しい差分列を生成できます。 [新しい式列]タブに移動し、をクリックしてプロンプトに従います。 例を以下に示します。

HTH
ビル・W