A:如何按条件分组和计数


您可以使用以下基本语法在 R 中执行分组和计数条件:

 library (dplyr)

df %>%
  group_by(var1) %>%
  summarize(count = sum(var2 == ' val '))

此特定语法根据var1对数据帧的行进行分组,然后计算var2等于“val”的行数。

以下示例展示了如何在实践中使用此语法。

示例:R 中的条件分组和计数

假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 pos=c('Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'),
                 points=c(18, 22, 19, 14, 14, 11, 20, 28))


#view data frame
df

  team pos points
1 A Gu 18
2 A Fo 22
3 A Fo 19
4 A Fo 14
5 B Gu 14
6 B Gu 11
7 B Fo 20
8 B Fo 28

以下代码显示了如何按团队变量对数据框进行分组,并计算pos变量等于“Gu”的行数:

 library (dplyr)

#group by team and count rows where pos is 'Gu'
df %>%
  group_by(team) %>%
  summarize(count = sum(pos == ' Gu '))

# A tibble: 2 x 2
  team count
   
1 to 1
2 B 2

从结果我们可以看出:

  • A 队有1行,其中 pos 列等于“Gu”
  • B 队有2行,其中 pos 列等于“Gu”

我们可以使用类似的语法对数字条件进行分组和计数。

例如,以下代码显示了如何按team变量进行分组并计算Points变量大于 15 的行数:

 library (dplyr)

#group by team and count rows where pos is 'Gu'
df %>%
  group_by(team) %>%
  summarize(count = sum(points > 15 ))

# A tibble: 2 x 2
  team count
   
1 to 3
2 B 2

从结果我们可以看出:

  • A 队有3 条线得分大于 15
  • B 队有2 条线得分大于 15

您可以使用类似的语法对所需的任何特定条件进行分组和计数。

其他资源

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

如何在R中对有条件的列中的值进行计数
如何在R中按组选择前N个值

添加评论

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