É possível utilizar o número_de_corte() da função ggplot2 em R para dividir um vetor em grupos de tamanho igual.

Esta função utiliza a seguinte sintaxe básica:

cut_number(x, n)

onde:

  • x: Nome do vetor numérico a dividir
  • n: Número de grupos

O exemplo seguinte mostra como utilizar esta função na prática.

Exemplo: Como dividir dados em grupos de tamanho igual no R

Suponhamos que temos a seguinte estrutura de dados em R que contém informações sobre os pontos marcados por 12 jogadores de basquetebol diferentes

 #criar quadro de dados df <- data. frame (player=LETTERS[1:12], points=c(1, 2, 2, 2, 4, 5, 7, 9, 12, 14, 15, 22)) #ver quadro de dados df player points 1 A 1 2 B 2 3 C 2 4 D 2 5 E 4 6 F 5 7 G 7 8 H 9 9 I 12 10 J 14 11 K 15 12 L 22 

Relacionadas: Como utilizar a função LETTERS no R

Podemos utilizar o número_de_corte() da função ggplot2 para criar uma nova coluna chamada grupo que divide cada linha do quadro de dados em um dos três grupos com base no valor do parâmetro pontos coluna:

 library (ggplot2) #criar uma nova coluna que divide os dados em três grupos de tamanho igual com base nos pontos df$group <- cut_number(df$points, 3) #ver quadro de dados atualizado df player points group 1 A 1 [1,3.33] 2 B 2 [1,3.33] 3 C 2 [1,3.33] 4 D 2 [1,3.33] 5 E 4 (3.33,10] 6 F 5 (3.33,10] 7 G 7 (3.33,10] 8 H 9 (3.33,10] 9 I 12 (10,22] 10 J 14 (10,22] 11 K 15 (10,22] 12 L 22 (10,22] 

Cada um dos 12 jogadores foi colocado num dos três grupos com base no valor do pontos coluna.

A partir do resultado, podemos ver que existem 3 grupos distintos:

  • grupo 1: o valor dos pontos situa-se entre 1 e 3,33.
  • grupo 2: o valor dos pontos situa-se entre 3,33 e 10.
  • grupo 3: o valor dos pontos situa-se entre 10 e 22.

Podemos ver que foram colocados quatro jogadores em cada grupo.

Se desejar o grupo para apresentar os grupos como valores inteiros, pode envolver a coluna número_de_corte() numa função as.numeric() função:

 library (ggplot2) #criar uma nova coluna que divide os dados em três grupos de tamanho igual com base nos pontos df$group <- as. numeric (cut_number(df$points, 3)) #ver quadro de dados atualizado df player points group 1 A 1 1 2 B 2 1 3 C 2 1 4 D 2 1 5 E 4 2 6 F 5 2 7 G 7 2 8 H 9 2 9 I 12 3 10 J 14 3 11 K 15 3 12 L 22 3 

A nova coluna do grupo contém agora os valores 1, 2 e 3 para indicar a que grupo pertence o jogador.

Mais uma vez, cada grupo contém quatro jogadores.

Nota Para dividir a coluna de pontos em mais de três grupos, basta alterar o 3 no número_de_corte() para um número diferente.