比較的簡単な作業であるはずのことを、余計に難しいやり方でやっているような気がします。他の誰かがより良いアプローチについてアドバイスを持っているかどうか疑問に思います。

ここに示すようなカスタム テーブルを作成しようとしています。ここでは、「値」列の各エントリの小数点以下の桁数を変えることができます。以下の例では、「N」は小数点以下 0 桁、「Mean」/「SD」/「LCL (3SD)」/「UCL (3SD)」は小数点以下 4 桁、「Pp」は小数点以下 2 桁である必要があります。場所など - 末尾のゼロも含まれます。これらの値は、列ヘッダーとして「Stat」列エントリを持つ最初の行の列に値が入力されているデータ テーブルから取得されます。
当初、私はこれをテーブル ボックスとして設定し、文字列列ボックスと数値列ボックスを埋め込みました。
nw = New Window( "nw", tb = Table Box(
scb = String Col Box( "Stat", {}),
ncb = Number Col Box( "Value", {}),
)
);
For( i = 1, i <= N Cols( dt), i++,
tb << Add Row( {Column( dt, i) << Get Name, Column( dt, i)[1] })
);ただし、Number Col Box には、そのボックス内のすべてのエントリに適用される独自の数値形式設定があるようです。
多くの試行錯誤の結果、機能することがわかったのは、Char() または Format() (形式/小数点以下の桁数を指定) を使用して、個々の項目を数値形式から文字形式に事前に変換することです。例えば、
Column( dt, "Pp")[1] = Format( Round( Column( dt, "Pp")[1], 2), "Fixed Dec", 2);
次に、数値列ボックスを 2 番目の文字列列ボックスに置き換え、変換された値を文字列として追加します。
nw = New Window( "nw", tb = Table Box(
scb1 = String Col Box( "Stat", {}),
scb2 = String Col Box( "Value", {}),
)
);
For( i = 1, i <= N Cols( dt), i++,
tb << Add Row( {Column( dt, i) << Get Name, Column( dt, i)[1] })
);私が見逃しているもっと簡単な方法はありますか?
余談:
- 今日、Format()関数が数値データを文字データに変換することを学びました。これは単に数値データの形式を変更するためのものだと思っていました。
- 今日は、Char() に幅と小数点以下の桁の属性を追加できることを学びました。それ以外の場合は、末尾のゼロが切り取られます。