Pode utilizar a seguinte sintaxe para calcular uma percentagem por grupo no R:

 library (dplyr) df %>% group_by(group_var) %>% mutate(percent = value_var/sum(value_var)) 

O exemplo seguinte mostra como utilizar esta sintaxe na prática.

Exemplo: Calcular a percentagem por grupo em R

Suponha que temos o seguinte quadro de dados que mostra os pontos marcados pelos jogadores de basquetebol de várias equipas:

 #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 

Podemos utilizar o seguinte código para criar uma nova coluna no quadro de dados que mostra a percentagem do total de pontos marcados, agrupados por equipa:

 library (dplyr) #calcular a percentagem de pontos marcados, agrupados por equipa df %>% group_by(team) %>% mutate(percent = points/sum(points)) # Uma tabela: 10 x 3 # Grupos: equipa equipa pontos percentagem 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 

O por cento mostra a percentagem do total de pontos marcados por esse jogador na sua equipa.

Por exemplo, os jogadores da equipa A marcaram um total de 99 pontos.

Assim, o jogador na primeira linha do quadro de dados que marcou 12 pontos marcados num total de 12/99 = 12.12% do total de pontos da equipa A.

Da mesma forma, o jogador na segunda linha do quadro de dados que marcou 29 pontos marcados num total de 29/99 = 29.29% do total de pontos da equipa A.

E assim por diante.