如何在 r 中计算每组的观察值
通常,您可能对计算 R 中每组的观测值数量感兴趣。
幸运的是,使用dplyr库的count()函数可以轻松做到这一点。
本教程使用以下数据框解释了该函数实际使用的几个示例:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C' , 'CC'), position = c('G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F', 'F '), points = c(4, 13, 7, 8, 15, 15, 17, 9, 21, 22, 25, 31)) #view data frame df team position points 1 GA 4 2 AG 13 3AF 7 4 BG 8 5 BF 15 6 BF 15 7 BF 17 8 BG 9 9 GC 21 10 CF 22 11 CF 25 12 CF 31
示例 1:通过变量计数
下面的代码展示了如何计算每队的球员总数:
library (dplyr)
#count total observations by variable 'team'
df %>% count(team)
# A tibble: 3 x 2
team n
1 to 3
2 B 5
3 C 4
从结果我们可以看出:
- A队由3名队员组成
- B队由5名队员组成
- C队由4名队员组成
这个单一的 count() 函数让我们对每支球队的球员分布有一个很好的了解。
请注意,如果需要,我们还可以对计数进行排序:
#count total observations by variable 'team' df %>% count(team, sort= TRUE ) # A tibble: 3 x 2 team n 1 B 5 2 C 4 3 to 3
示例 2:按多个变量进行计数
我们还可以按几个变量进行排序:
#count total observations by 'team' and 'position'
df %>% count(team, position)
# A tibble: 6 x 3
team position n
1 AF 1
2 AG 2
3 BF 3
4 BG 2
5 CF 3
6 GC 1
从结果我们可以看出:
- A 队有 1 名球员担任“F”(前锋)位置,2 名球员担任“G”(后卫)位置。
- B 队有 3 名球员担任“F”(前锋)位置,2 名球员担任“G”(后卫)位置。
- C 队有 3 名球员担任“F”(前锋)位置,1 名球员担任“G”(后卫)位置。
示例3:加权数
我们还可以用另一个变量对一个变量的计数进行“加权”。例如,以下代码显示如何使用“points”变量作为权重来计算每个团队的总观察值:
df %>% count(team, wt= points )
# A tibble: 3 x 2
team n
1 to 24
2 B 64
3 C 99
您可以在此处找到count()函数的完整文档。