如何在R中按组计算百分比(有例子)?

1,706 阅读1分钟

你可以使用以下语法在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.