如何在 r 中使用 n() 函数(附示例)


您可以使用 R 中dplyr包中的n()函数来计算组中观察值的数量。

以下是在实践中使用此功能的三种常见方法:

方法 1:使用 n() 按组对观察值进行计数

 df %>%
  group_by(group_variable) %>%
  summarize(count = n())

方法 2:使用 n() 添加按组显示观察值的列

 df %>%
  group_by(group_variable) %>%
  mutate(count = n())

方法 3:使用 n() 根据按组的观察结果进行过滤

 df %>%
  group_by(group_variable) %>%
  filter(n() > 15 )

以下示例展示了如何在实践中使用每种方法,并使用 R 中的以下数据框(其中包含有关各种篮球运动员的信息):

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'),
                 points=c(22, 25, 25, 20, 29, 13),
                 assists=c(10, 12, 9, 4, 11, 10),
                 rebounds=c(9, 8, 5, 10, 14, 12))

#view data frame
df

  team points assists rebounds
1 A 22 10 9
2 A 25 12 8
3 to 25 9 5
4 B 20 4 10
5 B 29 11 14
6 C 13 10 12

示例 1:使用 n() 按组对观察值进行计数

以下代码演示了如何将n()函数与summarise()函数结合使用来计算每个团队的观察数:

 library (dplyr)

#count number of observations by team
df %>%
  group_by(team) %>%
  summarize(count = n())

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

从结果我们可以看出:

  • A队出现3次
  • B队出现2次
  • C队出现1次

示例 2:使用 n() 添加按组显示观测值的列

以下代码演示如何将n()函数与mutate()函数结合使用,将一列添加到包含每个团队的观察数的日期框架:

 library (dplyr)

#add new column that shows number of observations by team
df %>%
  group_by(team) %>%
  mutate(count = n())

# A tibble: 6 x 5
# Groups: team [3]
  team points assists rebounds count
            
1 to 22 10 9 3
2 to 25 12 8 3
3 to 25 9 5 3
4 B 20 4 10 2
5 B 29 11 14 2
6 C 13 10 12 1

名为count的新列包含数据框中每行的团队数量。

示例 3:使用 n() 根据按组的观察结果进行过滤

以下代码演示如何使用n()函数和filter()函数来过滤数据框,以仅显示团队出现多次的行:

 library (dplyr)

#filter rows where team count is greater than 1
df %>%
  group_by(team) %>%
  filter(n() > 1 )

# A tibble: 5 x 4
# Groups: team [2]
  team points assists rebounds
           
1 A 22 10 9
2 A 25 12 8
3 to 25 9 5
4 B 20 4 10
5 B 29 11 14

请注意,生成的数据框仅包含团队为“A”或“B”的行,因为这些是唯一数量大于 1 的团队。

其他资源

以下教程解释了如何使用 R 中的其他常用函数:

如何在 dplyr 中使用 across() 函数
如何在 dplyr 中使用 relocate() 函数
如何在 dplyr 中使用 slice() 函数

添加评论

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