数値変数の丸め方

 数値データは、小数点以下の桁数が多い精度で保存されることがあります。 このレベルの精度は不要な場合があり、データを丸めたり、場合によっては floor 関数や ceiling 関数を 使用したりする必要があります。

 まず、Stata Web サイトからサンプル データセットを開いて説明してみましょう。

. use https://www.stata.com/users/youtube/rawdata.dta, clear
. describe

 変数 weight の変数ラベルから、重量がキログラム単位で測定されていることがわかります。 最初の 5 つの観測値を表示してみましょう。

. list weight in 1/5

 変数 weight は小数第2位まで測定されます。 小数第2位までの精度を必要としない場合、値を丸めることができます。 generate コマンドと round() 関数を使用して、小数点 1 桁に丸められた新しい変数 weight1 を作成しましょう。

. generate weight1 = round(weight, 0.1)
. list weight weight1 in 1/5

 または、weight を最も近い整数に丸めることもできます。

. generate weight0 = round(weight, 1.0)
. list weight weight1 weight0 in 1/5

 場合によっては、丸めるのではなく、floor 関数を使用したい場合があります。 たとえば、誕生日から 1 か月離れている場合でも、通常、年齢は整数のみを使用して表します。 年齢は丸めず、floor 関数を使用します。これを weight に対して実行してみましょう。

. generate weightf = floor(weight)
. list weight weight1 weight0 weightf in 1/5

 3 番目の weight の観測は良い例です。 64.98 という値は 65 に非常に近いですが、weightf に表示される floor 値は 64 です。

 ceil 関数は floor 関数の逆です。ceil 関数は、引数よりも大きな値で最小の整数を返します。

. generate weightc = ceil(weight)
. list weight weight1 weight0 weightf weightc in 1/5

 これでデータセットを保存できます。

. save mydata

参考

 さらに詳しい内容につきましては、下記のマニュアルをご覧ください。

Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.

page_top_icon