この記事では「JMPで日付の引き算をして年齢を計算する方法!日付は連続尺度を時間表示している」としてお伝えしていきます。
いざデータを解析しようとすると、例えば、生年月日と入院日のデータはあるんだけど、入院日の年齢がデータに入っていない。。
といった状況に出くわすこともあります。
また、患者さんに年齢を記入してもらう際にも、勘違いで間違った年齢が入力されることがあります。
そんなとき、生年月日と入院日の日付データから、簡単に年齢を計算する方法があれば。。
と思ったことがあるはず。
今回の記事では、JMPで2つの日付データから年齢を計算する方法について分かりやすく解説しますね。
統計ソフトで日付データは連続尺度を時間表示している
JMPをはじめとして、多くの統計ソフトでは日付データは数値として扱われています。
JMPのヘルプページを見ると、このように書かれています。
「日付や時間は、macOSの標準である1904年の1月1日からの秒数を使って数値列に格納されます。」とのこと。
つまり日付データの本質は「1904年の1月1日からの秒数」という連続データであり、表示形式を変えることで「年/月/日」にして表示しているだけ。
JMPの日付データの中身をチェックする
日付データは本当に連続データなのかをチェックしてみましょう。
たとえば、このようなデータがあります。
このとき、Birthdateの中身を見ると、Birthdateの中身は連続尺度であり、表示する際に「年/月/日」にして表示しているだけということが分かります。
つまり、数値として扱われるなら引き算も可能。
なので今回は、2つの日付データを引き算して年齢を算出したい、ということをやってみます。
JMPで日付の引き算をして年齢を計算する方法
では早速、JMPで2つの日付データを引き算して年齢を計算してみましょう。
目指すのはこのように、2つの日付から「Age」という年齢データを計算結果として得ることです。
手順は2つ。
- 新しい列を作る
- 計算式を使って二つの変数の引き算をして年齢を算出する
手順1:JMPで新しい列を作る
まずは、JMPで新しい列を作ります。
何もデータが入っていない列をダブルクリックすると新規の列が作成されます。
結構簡単に新規の列を作れますね。
手順2:JMPの計算式を使って二つの変数の引き算をして年齢を計算する
ここからが実際には本番です!
新規の列が作成された後、その列の列名をダブルクリックして列情報を編集します。
今回で言えば、列4をダブルクリックすると、列の情報を編集できるようになります。
そして、列名を適切に修正し、列のプロパティをクリックします。
列のプロパティから、計算式をクリック。
その後、計算式の編集をクリックします。
すると計算式の編集画面が出てきますので、左上の検索画面で「date」を打ち込み、Date Differenceを選択します。
すると右側の計算式の編集画面で、Date Difference関数を編集することができます。
Date Difference関数は最低でも3つを指定しなければならないため、左から「古い方の日付」「新しい方の日付」「”Year”(手打ち)」を入力していきます。
そしてOKを押せば、Age2として年齢が表示されます。
JMPのDate Difference関数に一手間加える
以上の手順で年齢を算出できたと思ったら、一つだけ問題点があります。
例えば下記の3行目の人は、まだ2022年に誕生日を迎えていないので28歳になるはずです。
同様に4行目の人は、まだ2022年に誕生日を迎えていないので45歳になるはずです。
つまり、今までの手順だと年情報の引き算しかやっていないことに。。
そのため、この部分の問題解決をしていきましょう。
先ほどと同じように、列をダブルクリックしてDate Difference関数を編集していきます。
まずは、Date Difference関数をダブルクリック。
そして下記の編集画面で、”Year”の後ろに半角カンマ、”actual”を入力します。
そしてOKを押していくと、無事に年齢が修正されたことが分かります。
まとめ
いかがでしたか?
この記事では「JMPで日付の引き算をして年齢を計算する方法!日付は連続尺度を時間表示している」としてお伝えしてしました。
2つの日付データから年齢を計算する方法について理解ができたのなら幸いです!
こちらの記事の内容は動画でも解説していますので、併せてご確認くださいませ。
コメント