JMPスクリプティングの問題(乗算機能)こんにちは、
jmpで関数multiplyを使用するのに問題があります。値をテーブルに配置する前に評価したいのですが。私はデバッグスクリプトを使用しました、そして、2つの変数は正しく評価していますが、一緒に乗算していません。誰も手伝ってくれる?
fl = Files In Directory( cal_path, recursive );
fli = {};
for( y = 1, y<=nitems(fl), y++,
if(left(fl[y],1) == "~", remove from(fl, y));
insertinto(fli,left(substitute(substitute(fl[y],"-",""),"_",""),9));
);
grfactor1 = {};
adjgr1 = {};
agr1 = {};
For( i = 1, i <= N Items( fl ), i++,
currentfile = cal_path || fl[i];
dt = Open( currentfile );
Current Data Table( dt );
name_list = dt << get column names( string );
If( Contains( name_list, "Active Multi" ) == 0 ,
Insert Into( grfactor1, "" );
Insert Into( adjgr1, "" );
close(dt, nosave);
Continue()
);
grfa = :name( "Active Multi 2" )[8];
adjgra = :name( "Active Multi 2" )[20];
Insert Into( grfactor1, grfa );
Insert Into( adjgr1, adjgra );
Close( dt, nosave );
);
agr1=adjgr1;
Multiply to (agr1, grfactor1);
ct = New Table( "historical_data" );
ct << New Column( "GRF1", numeric, values( Eval( grfactor1 ) ) );
ct << New Column( "GRU1", numeric, values( Eval( adjgr1 ) ) );
ct << New Column( "GR1", numeric, formula( GRU1 * GRF1 ) );
ct << new column( "check 1", numeric, values(Eval ( agr1 )));前もって感謝します。
再:JMPスクリプティングの問題(乗算機能)完璧です、ありがとうございました。期待通りに動作しています。
再:JMPスクリプティングの問題(乗算機能)この例では数字ではなく文字列のように見えます。それがあなたのデータにも当てはまる場合は、文字列が正しく乗算されないため、数値に変換する必要があります。変換はおそらくループ内で効率的に実行できます。
//...
grfa = Num(:name("Active Multi 2")[8]);
adjgra = Num(:name("Active Multi 2")[20]);
//...
再:JMPスクリプティングの問題(乗算機能)これは私がやろうとしていることの正確さであり、私はshow関数(素晴らしいアイデア)を使いました、そしてそれはこれを返しました:
adjgr = {"2.763"、。};
grfactor = {"0.291"、。};
agr = {"2.763"、。};
adjgr = {"2.763"、。};
grfactor = {"0.291"、。};
私はその読み取りから現時点では2つのファイルしか持っていません、そして1は何も含んでいません、そして、他はただ乱数を含みます。
あなたはそれがadjgrに評価しているだけでgrfactorによってそれを掛け合わないのを見ることができるように。
再:JMPスクリプティングの問題(乗算機能)列計算を削除して代わりにスクリプトで計算しようとしています。新しい列スクリプトの式は機能し、正しく評価されています。
Multiply to (agr1, grfactor1);
これは私に同じ値を与えますが、変数をagr1の値に評価するだけのようです。
再:JMPスクリプティングの問題(乗算機能)あなたのコードはこのようなことをしようとしていると思います。私は以前に値のリストを試したことがなかった:
a={1,2};
b={3,4};
show(a,b);
c=multiplyto(a,b);
show(a,b,c);
a = {1、2}; //()に乗算する入力
b = {3,4}。
a = {3、8}; //これはtoを乗算することで更新されます
b = {3,4}。
c = {3、8}。//これはto()を乗算して返されます
JMPログでエラーメッセージを確認し、show(a、b)関数を使用してログに値を書き込んで何が起こっているのかを確認してください。
再:JMPスクリプティングの問題(乗算機能)GRU1とGRF1が列名であることを示すために、スコープ ":"を使用してみてください。テーブルが大きい場合は、数式が評価される前にWait()コマンドを挿入して入力列を完全に完成させることもできます。
//...
Wait(0);
ct << New Column("GR1", numeric, formula(:GRU1 * :GRF1));
//...