如何在 r 中向数据框添加计数列
您可以使用以下基本语法将“计数”列添加到 R 中的数据框中:
df %>% group_by(var1) %>% mutate(var1_count = n())
此特定语法将名为var1_count的列添加到数据框中,其中包含名为var1的列中的值的数量。
以下示例展示了如何在实践中使用此语法。
示例:在 R 中添加数字列
假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:
#define data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'), position=c('G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) #view data frame df team position points 1 AG 18 2 AF 22 3 FY 19 4 BF 14 5 BG 14 6 BG 11 7 BF 20 8 BF 28
我们可以使用以下代码添加一个名为team_count的列,其中包含每个团队的计数:
library (dplyr)
#add column that shows total count of each team
df %>%
group_by(team) %>%
mutate(team_count = n())
# A tibble: 8 x 4
# Groups: team [2]
team position points team_count
1 AG 18 3
2 AF 22 3
3 FY 19 3
4 BF 14 5
5 BG 14 5
6 BG 11 5
7 BF 20 5
8 BF 28 5
有3 条线路的团队值为 A, 5条线路的团队值为 B。
所以:
- 对于 team 等于 A 的每一行, team_count列中的值为3 。
- 对于 team 等于 B 的每一行, team_count列中的值为5 。
您还可以添加一个“帐户”列,将多个变量组合在一起。
例如,以下代码显示如何添加对团队和职位变量进行分组的“帐户”列:
library (dplyr)
#add column that shows total count of each team and position
df %>%
group_by(team, position) %>%
mutate(team_pos_count = n())
# A tibble: 8 x 4
# Groups: team, position [4]
team position points team_pos_count
1 AG 18 1
2 AF 22 2
3 FY 19 2
4 BF 14 3
5 BG 14 2
6 BG 11 2
7 BF 20 3
8 BF 28 3
从结果我们可以看出:
- 有1行在球队列中包含 A,在位置列中包含 G。
- 有2行在球队列中包含 A,在位置列中包含 F。
- 有3行在球队列中包含 B,在位置列中包含 F。
- 有2行在球队列中包含 B,在位置列中包含 F。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: