Dplyr: データを要約してすべての列を保持する方法


dplyrsummarise()関数を使用すると、 summarise()関数またはgroup_by()関数に含まれていない変数は自動的に削除されます。

ただし、 mutate()関数を使用すると、データ フレーム内のすべての列を保持したままデータを要約できます。

次の例は、この関数を実際に使用する方法を示しています。

例: dplyr を使用してデータを要約するが、すべての列を保持する

さまざまなバスケットボール選手に関する情報を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ),
                 points=c(4, 9, 8, 12, 15, 14, 29, 30, 22),
                 assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12))

#view data frame
df

  team points assists
1 to 4 3
2 to 9 3
3 to 8 2
4 B 12 5
5 B 15 8
6 B 14 10
7 C 29 4
8 C 30 5
9 C 22 12

次の構文を使用して、チームごとの平均得点を要約できます。

 library (dplyr)

#summarize mean points values by team
df %>%
  group_by(team) %>%
  summarize(mean_pts = mean(points))

# A tibble: 3 x 2
  team mean_pts
      
1 to 7  
2 B 13.7
3 C 27

Mean_ptsという列には、各チームが獲得した平均ポイントが表示されます。

結果から次のことがわかります。

  • チーム A の選手が獲得した平均得点は7です。
  • チーム B の選手が獲得した平均得点は13.7です。
  • チーム C の選手が獲得した平均得点は27です。

ただし、元のデータ フレームの他のすべての列を保持したいとします。

これを行うには、 mutate()関数で次の構文を使用できます。

 library (dplyr)

#summarize mean points values by team and keep all columns
df %>%
  group_by(team) %>%
  mutate(mean_pts = mean(points)) %>%
  A group()

# A tibble: 9 x 4
  team points assists mean_pts
           
1 to 4 3 7  
2 to 9 3 7  
3 to 8 2 7  
4 B 12 5 13.7
5 B 15 8 13.7
6 B 14 10 13.7
7 C 29 4 27  
8 C 30 5 27  
9 C 22 12 27

mutate()関数を使用すると、元のデータ フレームの他のすべての列を保持しながら、チームごとの平均得点を要約するMean_ptsという新しい列を作成できます。

追加リソース

次のチュートリアルでは、dplyr で他の一般的なタスクを実行する方法を説明します。

dplyr: 列に文字列が含まれている場合に変数を変更する方法
dplyr: mutate() を使用して因子レベルを変更する方法
dplyr: 複数の列を追加する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です