jmp 専門家/ユーザーの皆様、こんにちは。
次のような同様の列名形式を持つ固定形式のデータ テーブルがあります (常に _1 で区別される同様の 2 つの列名)。
名前、C1、P2 ... C1_1、P2_1 .... (実際には、この命名規則を持つ多くの列)
以下の数式を使用して新しい列を作成したいと考えています。たとえば、
C1_cal by : C1-C1_1
P2_cal by : P2-P2_1
...
JSLを使用してこのループを実現するにはどうすればよいですか? どうもありがとう!
列名と列の順序に関してかなり多くの仮定が行われています
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
Compress File When Saved(1),
New Column("Name", Character, "Nominal", Set Values({})),
New Column("Column1", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column("Column2", Numeric, "Continuous", Format("Best", 12), Set Values([2])),
New Column("Column1_1", Numeric, "Continuous", Format("Best", 12), Set Values([2])),
New Column("Column2_1", Numeric, "Continuous", Format("Best", 12), Set Values([4]))
);
all_colnames = dt << Get Column Names("String");
Remove From(all_colnames, 1); // Drop first column
For Each({col_name}, all_colnames[1::(N Items(all_colnames)/2)],
Eval(Substitute(
Expr(
dt << New Column(col_name|| "_cal", Numeric, Continuous, Formula(
_firstcol_ - _secondcol_
));
),
Expr(_firstcol_), Name Expr(AsColumn(col_name)),
Expr(_secondcol_), Name Expr(AsColumn(col_name || "_1"))
));
);
Scripting Index と Scripting Guide には、JMP スクリプトに関する優れた情報が記載されています。Eval Insert、Eval Expr、Parse、Substitute を使用して、ある式を別の式に挿入する変数から数式を構築する方法に関する良い投稿です
どうもありがとう!!!
式を次のように変更したい場合C1-3.5*C1_1:
コードを以下の形式に変更する必要がありますか?
_firstcol_ - 3.5*(_secondcol_)
試してみて、結果と数式列のプロパティを確認してください。
