Como converter um número em um fator em r (com exemplos)


Existem dois métodos que você pode usar para converter uma variável numérica em uma variável fatorial em R:

Método 1: use as.factor()

 df$factor_variable <- as. factor (df$numeric_variable)

Isso converterá a variável numérica em uma variável de fator com um número de níveis igual ao número de valores exclusivos na variável numérica original.

Método 2: use cut()

 df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))

Este exemplo específico converterá a variável numérica em uma variável fatorial “cortando” a variável numérica em 3 valores igualmente espaçados.

Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 15, 22, 29, 35, 24, 11, 24))

#view data frame
df

  team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24

#view structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: num 12 15 22 29 35 24 11 24

Exemplo 1: Converter um numérico em um fator usando as.factor()

O código a seguir mostra como usar as.factor() para converter a coluna de pontos de numérico para fator:

 #convert points column from numeric to factor
df$points <- as. factor (df$points)

#view updated data frame
df

  team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24

#view updated structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: Factor w/ 7 levels "11","12","15",..: 2 3 4 6 7 5 1 5

Usando a função str() para visualizar a estrutura do quadro de dados, podemos ver que a coluna de pontos agora é um fator com 7 níveis diferentes representando os 7 valores numéricos únicos na coluna.

Exemplo 2: Converta um valor numérico em um fator usando cut()

O código a seguir mostra como usar cut() para converter a coluna de pontos de uma variável numérica em uma variável de fator de 3 níveis:

 #convert points column from numeric to factor with three levels
df$points <- cut(df$points, 3 , labels=c(' OK ', ' Good ', ' Great '))

#view updated data frame
df

  team points
1 A OK
2 A OK
3 B Good
4 B Great
5 C Great
6 C Good
7 C OK
8 D Good

#view updated structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: Factor w/ 3 levels "OK","Good","Great": 1 1 2 3 3 2 1 2

A partir do resultado, podemos ver que a variável pontos foi convertida de uma variável numérica para uma variável fatorial com três níveis e os seguintes rótulos:

  • “TUDO BEM”
  • “BOM”
  • “Ótimo”

Observe que escolhemos usar três níveis neste exemplo, mas fique à vontade para cortar a variável numérica em quantos níveis desejar, substituindo o 3 na função cut() por outro valor.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como converter numérico em caractere em R
Como converter um fator em numérico em R
Como converter fator em caractere em R

Add a Comment

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