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 中执行其他常见任务: