你可以使用以下语法在R中按组计算百分比。
library(dplyr)
df %>%
group_by(group_var) %>%
mutate(percent = value_var/sum(value_var))
下面的例子说明了如何在实践中使用这种语法。
例子。在R中按组计算百分比
假设我们有以下数据框,显示各队篮球运动员的得分情况。
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'),
points=c(12, 29, 34, 14, 10, 11, 7, 36, 34, 22))
#view data frame
df
team points
1 A 12
2 A 29
3 A 34
4 A 14
5 A 10
6 B 11
7 B 7
8 B 36
9 B 34
10 B 22
我们可以使用下面的代码在数据框中创建一个新列,显示按球队分组的总得分的百分比。
library(dplyr)
#calculate percentage of points scored, grouped by team
df %>%
group_by(team) %>%
mutate(percent = points/sum(points))
# A tibble: 10 x 3
# Groups: team [2]
team points percent
1 A 12 0.121
2 A 29 0.293
3 A 34 0.343
4 A 14 0.141
5 A 10 0.101
6 B 11 0.1
7 B 7 0.0636
8 B 36 0.327
9 B 34 0.309
10 B 22 0.2
百分比列显示了该球员在其球队中的总得分的百分比。
例如,A队的球员总共得了99分。
因此,数据框第一行中得到12分的球员总共得到了12/99=**12.12%**的A队总分。
同样,数据框中第二行的球员得了29分,占A队总分的29/99=29.29%。
以此类推。
其他资源
下面的教程解释了如何在R中执行其他常见任务。
如何在R中按组计算唯一值
如何在R中按组计算汇总统计
如何在R中按组计算总和
The postHow to Calculate Percentage by Group in R (With Example)appeared first onStatology.