データ テーブルの列ヘッダーを検索する JSL ループが必要です。列ヘッダーに「(rad)」が含まれている場合は、その列のすべての値に 180/pi を掛けて、列ヘッダーの「(rad)」を「(deg)」に変更します。
chatGPT を含め、考えられるあらゆることを試しましたが、今のところうまくいきません。
- <<列名を取得を使用してすべての列を取得します
- <<データ更新の開始を使用してテーブルを更新しないように設定します
- For Eachを使用してループする
- 名前に (rad) が含まれているかどうかを Contains / Starts With / Ends With を使って確認します。
- For Each Rowを使用してループし、値を度数に変更します。
- これにはもっと良い方法があると思いますが、新しい列を作成して古い列を削除したいのでなければ、本当にあるかどうかはわかりません。<<各値を設定すると非常に簡単に実行および読み取ることができます。
- 数式をその場で適用する(JMP18で追加)は機能するかもしれないが、その使用方法を理解するのは難しい
- マトリックス値を使用するのは良い選択肢の1つですが、For Each Rowは常に機能するので、それを学ぶことは常に良い考えです。
- 列の名前を変更するには、substituteと<< Set Nameを使用します。
- <<データ更新終了を使用してテーブルを再度更新します
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(2),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([., .])),
New Column("a (rad)", Numeric, "Continuous", Format("Best", 12), Set Values([1, .]))
);
colnames = dt << Get Column Names(Continuos, "String");
dt << Begin Data Update();
For Each({colname}, colnames,
If(Contains(colname, "(rad)"),
For Each Row(dt, Column(dt, colname)[] = Column(dt, colname)[] * 180 / Pi());
Column(dt, colname) << Set Name(Substitute(colname, "(rad)", "(deg)"));
)
);
dt << End Data Update();
Write();