Rのround関数、trunc関数の使い方

顔妻です。
今回はRでデータ処理を行なうときのユーザーの年齢データを年代ラベルに変換する方法をご紹介します。Excelではround関数一択で年代ラベルを作成できますがRでround関数を使うと切り捨てがうまくいきませんので別の関数を使う必要があります。また、今回は10歳刻みだけではなく5歳刻みに変更する方法もご紹介します。

今回の利用データ

以下のコードを使って10人分の性別、年齢が入った表データを作成しましょう。

sno sex age
1 male 21
2 female 24
3 female 27
4 male 32
5 female 39
6 male 43
7 female 19
8 male 25
9 female 30
10 male 51

round関数とtrunc関数の挙動確認と年代作成(10歳刻み)

それではそれぞれの関数の違いをみてみましょう。試しに年齢を10歳刻みの年代データに加工するときの挙動をみてみましょう。ゴールまでの戦略は一度年齢データを10で割って、それを四捨五入し、10倍すれば年代になるだろうというのを見込んでいます。

sno sex age age_1 age_round age_trunc
1 male 21 2.1 20 20
2 female 24 2.4 20 20
3 female 27 2.7 30 20
4 male 32 3.2 30 30
5 female 39 3.9 40 30
6 male 43 4.3 40 40
7 female 19 1.9 20 10
8 male 25 2.5 20 20
9 female 30 3 30 30
10 male 51 5.1 50 50

結果の表をみるとどうやらround関数を使った方法だと四捨五入をしてしまっているようです。一方でtrunc関数を使った結果をみるとやりたい意図になるようです。なので、今回のようなやり方ではtrunc関数を使って年代を作るのが良さそうです。

5歳刻みのデータラベル作成

それでは次は5歳刻みにチャレンジしてみましょう。以下は「age_4」の5歳刻みのカテゴリを作るために、下限値と上限値をまず計算し、この2つを使ってラベルを作成しています。

sno sex age age_4
1 male 21 21 ~ 25
2 female 24 21 ~ 25
3 female 27 26 ~ 30
4 male 32 31 ~ 35
5 female 39 36 ~ 40
6 male 43 41 ~ 45
7 female 19 16 ~ 20
8 male 25 21 ~ 25
9 female 30 31 ~ 35
10 male 51 51 ~ 55

まとめ

いかがでしょうか?アンケートデータや社内のユーザーデータの分析では既定されているセグメントに対しての効果がどうだったのか?そしてそれ以外のセグメントには効果があったのかが重要になってきます。このときに年齢のままだと分析自体がままならないことがほとんどだと思います。そんなときには是非このやり方を使って分析をおこなってみてください。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA