Dplyr で ungroup() を使用する方法 (例付き)


group_by()関数を使用してグループごとに 1 つの変数を要約した後、 dplyr の ungroup ()関数を使用して行のグループを解除できます。

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

例: dplyr で ungroup() を使用する方法

R に次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 dots=c(14, 18, 22, 26, 36, 34),
                 assists=c(5, 4, 4, 8, 7, 3))

#view data frame
df

  team points assists
1 to 14 5
2 to 18 4
3 to 22 4
4 B 26 8
5 B 36 7
6 B 34 3

ここで、次のコードを使用して、チームごとにグループ化された平均ポイント値を計算するとします。

 library (dplyr)

#calculate mean of points, grouped by team
df_new <- df %>%
            group_by(team) %>%
            summarize(mean_points = mean(points)) %>%
            A group()

#view results
df_new

# A tibble: 2 x 2
  team mean_points
         
1 to 18
2 B 32

この構文を使用すると、チームごとにグループ化されたポイントの平均値を計算できますが、アシスト列が失われています。

ヘルパー列を保持するには、 summary()の代わりにmutate()を使用し、最後にungroup()を使用します。

 library (dplyr)

#calculate mean of points, grouped by team
df_new <- df %>%
            group_by(team) %>%
            mutate(mean_points = mean(points)) %>%
            A group()

#view results
df_new

# A tibble: 6 x 4
  team points assists mean_points
              
1 A 14 5 18
2 A 18 4 18
3 A 22 4 18
4 B 26 8 32
5 B 36 7 32
6 B 34 3 32

今回はアシスト列を保持し、 mutate()関数を使用して、各チームの平均ポイント値を表示するMean_pointsという新しい列を追加しました。

ungroup()関数も使用したため、グループ化された変数の影響を受ける計算を心配することなく、この新しいデータ フレームで計算を実行できます。

ungroup()関数を使用しなかった場合、データ フレーム内の行はグループ化されたままになり、後で他の計算を実行するときに意図しない結果が生じる可能性があります。

追加リソース

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

dplyrを使用して一意の値をフィルタリングする方法
dplyrを使って複数の条件でフィルタリングする方法
R の列の出現数をカウントする方法

コメントを追加する

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