Rでデータ解析を始めよう014 tapply関数のキホン的な使い方

Rでデータ解析を始めよう014 tapply関数のキホン的な使い方

モモノキ&ナノネと一緒に統計ソフトRの使い方を学習していきます。

モモノキ&ナノネと一緒にR関数の使い方を練習しよう





データをグループ分け処理できるtapply関数のキホン的使い方

ナノネ、統計解析用フリーソフト『R』の使い方を練習するよ。今回はapplyファミリーのひとつでtapply関数を使ってみよう。
apply、sapply、lappyに続いて今度はtapply関数だね。
モモノキ、tapply関数はどういった処理ができるの?
tapply関数はデータをグループごとにまとめて処理ができる関数だよ。
練習用のデータを一つ作って、実際にtapply関数の動作を確認してみよう。
In [3]:
# tapply関数の練習用データ1

X <- data.frame(
    user = c("Momo", "Momo", "Nano" , "Nano", "Nano", "Momo"),
    score = c(85, 90, 60, 50, 55, 95)
)

X
userscore
Momo85
Momo90
Nano60
Nano50
Nano55
Momo95
練習用データはMomoとNanoの何らかのスコアだね。
tapply関数はどうやって使うの?
tapply関数は第1引数に処理対象データ、第2引数に分類データ、第3引数に処理したい関数を指定するよ。
今回の場合、第1引数がscore、第2引数がuser、第3引数の関数は平均計算meanにしておこう。ちなみに第2引数はリスト形式で複数個渡せる仕様だよ。
In [6]:
user_score.mean <- tapply(X$score, list(X$user), mean) # ユザーごとの平均スコア
print(user_score.mean)
Momo Nano 
  90   55 
ユーザーごとの平均値がうまく計算できた。
上の場合、tapply関数の処理イメージはこんな感じだよ。

次は分類用の列をもう一つ増やしたデータで、同じようにtapply関数を試してみよう。
In [14]:
# tapply関数の練習用データ2

X2 <- data.frame(
    user = c("Momo", "Momo", "Nano" , "Nano", "Nano", "Momo"),
    type = c("A", "A", "B", "A", "B", "B"),
    score = c(85, 90, 60, 50, 55, 95)
)

X2
usertypescore
MomoA 85
MomoA 90
NanoB 60
NanoA 50
NanoB 55
MomoB 95
こんどの場合は、第2引数の分類データにuserとtypeの2つをリストで渡せばOKだよね。
In [15]:
user_type_score.mean <- tapply(X2$score, list(X2$user, X2$type), mean) # ユザーとタイプごとの平均スコア
print(user_type_score.mean)
        A    B
Momo 87.5 95.0
Nano 50.0 57.5
グループ分けされた平均値が、うまく計算できたみたい。
tapply関数のキホン的な使い方練習は以上で。
またね!




スポンサーリンク

0 件のコメント :

コメントを投稿