如何在 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()函数的完整文档。

添加评论

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