如何在 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() 函数