Rでグループ平均を計算してデータフレームにまとめる
本稿ではRを用いてグループ内平均を計算する方法をご紹介いたします。
パッケージの読み込み
library(dplyr)
インストールされていない方はinstall.packages("dplyr")
をご利用下さい。
使用するデータセット
今回は、男女2人ずつのテストのスコア("Tesy_score")が含まれるデータセットを作成しました。 男性("male")と女性("female")ごとの平均を計算していきましょう。
data <- data.frame(name = c("Taro", "Jiro", "Hanako", "Noriko"), sex = c("male","male","female","female"), Test_score =c(90,80,100,70))
データセットは以下のようになっています。
グループ内平均の計算
data <- data %>% group_by(sex) %>% mutate(Ave_by_sex=mean(Test_score)) %>% mutate(diff_by_sex=Test_score-Ave_by_sex) %>% ungroup()
2列目では、性別(sex)毎にグループ化しています。3列目では、性別毎の平均(Ave_by_sex)をmean()を使って計算しています。4列目では、性別毎の平均と自分のスコアの差(diff_by_sex)を計算しています。 完成したデータセットはこちらです。
最後に
最後に使用したコードをすべてまとめておきます。
library(dplyr) data <- data.frame(name = c("Taro", "Jiro", "Hanako", "Noriko"), sex = c("male","male","female","female"), Test_score =c(90,80,100,70)) data <- data %>% group_by(sex) %>% mutate(Ave_by_sex=mean(Test_score)) %>% mutate(diff_by_sex=Test_score-Ave_by_sex) %>% ungroup()
皆様の助けになれば幸いです。