合計 15 列を定義するために使用される 2 つの変数があります。 それらは、a = {"1"、"2"、"3"、"4"、"5"} および b = {"1"、"2"、"3"} です。 現在、Column("11")、Column("12")、Column("13")、Column("21")、別名 Column(b[1] || という表記ですでに作成されている 15 個の列があります。 a[1])、列(b[1] || a[2]) など...
既存の 15 列の最初の 6 行を平均し、サイズ 15 の配列に配置しました。 この配列を「ave」と呼びました。
したがって、ave[1] は Column("11") の最初の 6 行の平均になり、ave[2] は Column("12") の最初の 6 行の平均になります。
ここで、「a」配列と「b」配列の両方を使用して、接頭辞「D」が付いた 15 個の新しい列を作成したいと考えています。 また、既存の列 (その列の平均 6 行) を取得する列に数式を設定します。
たとえば、Column("D11") の式は次のようになります。
:名前("11") - 平均[1]
Column("D12") は次のようになります。
:名前("12") - 平均[2]
私のコード:
index = 1;
For( i = 3, i > 0, i--,
For( j = 5, j > 0, j--,
at << Add Multiple Columns( "D" || b[i] || a[j], 1, numeric, continuous, );
F = Eval Expr(expr(ave[index]));
Column( "D" || b[i] || a[j] ) << Set Formula( :Name("11")-Name Expr(F) );
index = index + 1;
);
);
上記のコードは、「ave」に格納されている 15 個の平均値を介してインデックス変数を増分しようとすると機能しません。 もう 1 つの問題は、数式内の a と b のすべての組み合わせに対して、:Name("11")、:Name("12") などを繰り返す必要があることです。 次の方法で数式を設定する方法がほぼ必要です。
:名前(b[i] || a[i])
ただし、:Name では引用符で囲まれた文字列を使用する必要があり、そのようにすることはできません。
parse、evalなどの複数の方法を試しましたが、うまくいきませんでした。
助けていただければ幸いです。
ありがとう!
これは機能する JSL の一部です。必要なコマンドの正確な文字列を生成し、Eval(Parse()) によってコードを実行するメソッドを使用します。
index = 1;
;
For( i = 3, i > 0, i--,
For( j = 5, j > 0, j--,
Eval(
Parse(
"at << New Column(\!"D" || b[i] || a[j] ||
"\!",1,numeric,continuous,Formula( :Name( \!""
|| Char( index + 10 ) || "\!" ) - " || Char( ave[index] ) || "));"
)
);
index = index + 1;
);
);