Como usar a função cut() em r


A função cut() em R pode ser usada para cortar um intervalo de valores em compartimentos e especificar rótulos para cada compartimento.

Esta função usa a seguinte sintaxe:

cortar(x, quebras, rótulos = NULL,…)

Ouro:

  • x : nome do vetor
  • breaks : Número de quebras a serem feitas ou vetor de pontos de quebra
  • rótulos : rótulos para as caixas resultantes

Os exemplos a seguir mostram como usar esta função em diferentes cenários com o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1 to 4
2 B 7
3 C 8
4 D 12
5 E 14
6 F 16
7 G 20
8:26 a.m.
9 I 36

Exemplo 1: Corte o vetor com base no número de quebras

O código a seguir mostra como usar a função cut() para criar uma nova coluna chamada categoria que corta a coluna de pontos em grupos de quatro tamanhos iguais:

 #create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks= 4 )

#view updated data frame
df

  player points category
1 to 4 (3.97.12]
2 B 7 (3.97.12]
3 C 8 (3.97.12]
4 D 12 (3.97.12]
5 E 14 (12.20]
6 F 16 (12.20]
7 G 20 (12.20]
8:26 a.m. (20.28]
9 I 36 (28.36]

Como especificamos breaks=4 , a função cut() divide os valores na coluna de pontos em grupos de quatro tamanhos iguais.

Veja como a função cut() fez isso:

  • Primeiro, ele encontrou a diferença entre o maior e o menor valor na coluna de pontos (36 – 4 = 32).
  • Então ele divide essa diferença por 4 (32/4 = 8)
  • O resultado são quatro caixas com largura de 8 cada.

Nota : O intervalo mais baixo é 3,97 em vez de 4 devido à seguinte funcionalidade da documentação cut() :

Quando as pausas são especificadas como um único número, o intervalo dos dados é dividido em blocos de pausas de igual comprimento e, em seguida, os limites externos são movidos 0,1% para longe do intervalo para garantir que os valores discrepantes caiam dentro de ambos nos intervalos de pausa.

Exemplo 2: Vetor de corte com base em pontos de interrupção específicos

O código a seguir mostra como usar a função cut() para criar uma nova coluna chamada categoria que corta a coluna de pontos com base em um vetor de pontos de interrupção específicos:

 #create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1 to 4 (0.10]
2 B 7 (0.10]
3 C 8 (0.10]
4 D 12 (10.15]
5 E 14 (10.15]
6 F 16 (15.20]
7 G 20 (15.20]
8:26 a.m. (20.40)
9 I 36 (20.40]

A função cut() classificou cada jogador em categorias com base no vetor específico de pontos de interrupção que fornecemos.

Exemplo 3: Corte um vetor usando pontos de interrupção e rótulos específicos

O código a seguir mostra como usar a função cut() para criar uma nova coluna chamada categoria que corta a coluna de pontos com base em um vetor de pontos de interrupção específicos com rótulos personalizados:

 #create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c(' Bad ', ' OK ', ' Good ', ' Great '))

#view updated data frame
df

  player points category
1 A 4 Bad
2 B 7 Bad
3 C 8 Bad
4 D 12 OK
5 E 14 OK
6 F 16 Good
7 G 20 Good
8:26 A.M. Great
9 I 36 Great

A nova coluna de categoria classifica cada jogador como Ruim, OK, Bom ou Excelente com base no valor correspondente na coluna de pontos .

Nota : O número de rótulos deve ser sempre um a menos que o número de pontos de interrupção para evitar o seguinte erro:

 Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",: 
  lengths of 'breaks' and 'labels' differ

Recursos adicionais

Os tutoriais a seguir explicam como usar outras funções comuns em R:

Como usar a função tabulate() em R
Como usar a função split() em R
Como usar a função match() em R
Como usar a função replicate() em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *