R でデータ フレームに count 列を追加する方法


次の基本構文を使用して、R のデータ フレームに「count」列を追加できます。

 df %>%
  group_by(var1) %>%
  mutate(var1_count = n())

この特定の構文は、 var1_countという列を、 var1という列の値の数を含むデータ フレームに追加します。

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

例: R に数値列を追加します。

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

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'),
                 position=c('G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(18, 22, 19, 14, 14, 11, 20, 28))

#view data frame
df

  team position points
1 AG 18
2 AF 22
3 FY 19
4 BF 14
5 BG 14
6 BG 11
7 BF 20
8 BF 28

次のコードを使用して、各チームの数を含むteam_countという列を追加できます。

 library (dplyr)

#add column that shows total count of each team
df %>%
  group_by(team) %>%
  mutate(team_count = n())

# A tibble: 8 x 4
# Groups: team [2]
  team position points team_count
              
1 AG 18 3
2 AF 22 3
3 FY 19 3
4 BF 14 5
5 BG 14 5
6 BG 11 5
7 BF 20 5
8 BF 28 5

チーム値が A のラインが3 つ、チーム値が B のラインが5つあります。

それで:

  • チームが A に等しい各行の、 team_count列の値は3です。
  • チームが B に等しい各行の、 team_count列の値は5です。

複数の変数をグループ化する「アカウント」列を追加することもできます。

たとえば、次のコードは、チーム変数とポジション変数をグループ化する「アカウント」列を追加する方法を示しています。

 library (dplyr)

#add column that shows total count of each team and position
df %>%
  group_by(team, position) %>%
  mutate(team_pos_count = n())

# A tibble: 8 x 4
# Groups: team, position [4]
  team position points team_pos_count
                  
1 AG 18 1
2 AF 22 2
3 FY 19 2
4 BF 14 3
5 BG 14 2
6 BG 11 2
7 BF 20 3
8 BF 28 3

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

  • チーム列に A、ポジション列に G が含まれる行が1 つあります。
  • チーム列に A が含まれ、ポジション列に F が含まれる行が2つあります。
  • チーム列に B、ポジション列に F が含まれる行が3つあります。
  • チーム列に B が含まれ、ポジション列に F が含まれる行が2つあります。

追加リソース

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

Rで条件付きでグループ化してカウントする方法
Rでリストの要素数を数える方法
R でデータ フレーム内の単一行を選択する方法

コメントを追加する

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