如何在 r 中向数据框添加计数列


您可以使用以下基本语法将“计数”列添加到 R 中的数据框中:

 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

3 条线路的团队值为 A, 5条线路的团队值为 B。

所以:

  • 对于 team 等于 A 的每一行, team_count列中的值为3
  • 对于 team 等于 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

从结果我们可以看出:

  • 1行在球队列中包含 A,在位置列中包含 G。
  • 2行在球队列中包含 A,在位置列中包含 F。
  • 3行在球队列中包含 B,在位置列中包含 F。
  • 2行在球队列中包含 B,在位置列中包含 F。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在R中按条件进行分组和计数
如何计算R中列表中元素的数量
如何在R中的数据框中选择单行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注