Exploratory コミュニティ

生年月日から年齢を計算する方法

#1

例えば、小売店を営んでいて、お客様の年齢と売上には関係はあるのか調べたいとします。しかし、生年月日のデータしかないため、生年月日から年齢を算出したいです。

image

そのような場合には、下記のスクリプトを使用すると年齢を算出することができます。

floor(as.numeric(today() - Birthday) / 365)

列ヘッダーメニューから計算を作成(Mutate)を選択します。

image

次に、先ほどのスクリプトを入力して実行します。

※Birthdayの部分は、生年月日が入力されている列名を入力します。

image

計算している内容としては、
今日の日付から生年月日を引くことで、生年月日からの経過日数の値を得るため、その値を1年間の日数である365で割って出た値を小数点以下で切り捨てしています。

todayは今日の日付を返してくれる関数です。そのため、today() - Birthdayを行うことで、生年月日から何日経過しているかという値を返すことができます。

つぎに、as.numericは数値型に変換する関数となっています。as.numericがないと、difftimeという日付の差を表すデータタイプになってしまうのですが、チャートやアナリティクスで活用したいときには数値型の方が都合がいいために、数値型に変換します。そのため、数値型に変換した生年月日からの経過日数を1年の日数である365日で割ることで、大体の年齢を算出することができます。
最後に、小数部分を切り捨てるためにfloor関数を使用して、値を整数のみにしています。

1 Like