Fatores R
Fatores
Fatores são usados para categorizar dados. Exemplos de fatores são:
- Demografia: Masculino/Feminino
- Música: Rock, Pop, Clássico, Jazz
- Treinamento: Força, Resistência
Para criar um fator, use a factor()
função e adicione um vetor como argumento:
Exemplo
# Create a factor
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
# Print the factor
music_genre
Resultado:
[1] Jazz Rock Classic Classic Pop Jazz Rock Jazz Levels: Classic Jazz Pop Rock
Você pode ver pelo exemplo acima que o fator tem quatro níveis (categorias): Clássico, Jazz, Pop e Rock.
Para imprimir apenas os níveis, use a levels()
função:
Exemplo
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
levels(music_genre)
Resultado:
[1] "Classic" "Jazz" "Pop" "Rock"
Você também pode definir os níveis, adicionando o levels
argumento dentro da
factor()
função:
Exemplo
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Other"))
levels(music_genre)
Resultado:
[1] "Classic" "Jazz" "Pop" "Rock" "Other"
Comprimento do fator
Use a length()
função para descobrir quantos itens existem no fator:
Exemplo
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
length(music_genre)
Resultado:
[1] 8
Fatores de acesso
Para acessar os itens em um fator, consulte o número do índice, usando []
colchetes:
Exemplo
Acesse o terceiro item:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
music_genre[3]
Resultado:
[1] Classic Levels: Classic Jazz Pop Rock
Alterar valor do item
Para alterar o valor de um item específico, consulte o número do índice:
Exemplo
Altere o valor do terceiro item:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
music_genre[3] <- "Pop"
music_genre[3]
Resultado:
[1] Pop Levels: Classic Jazz Pop Rock
Observe que você não pode alterar o valor de um item específico se ainda não estiver especificado no fator. O exemplo a seguir produzirá um erro:
Exemplo
Tentando alterar o valor do terceiro item ("Clássico") para um item que não existe/não predefinido ("Opera"):
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
music_genre[3] <- "Opera"
music_genre[3]
Resultado:
Warning message: In `[<-.factor`(`*tmp*`, 3, value = "Opera") : invalid factor level, NA generated
No entanto, se você já o especificou dentro do levels
argumento, funcionará:
Exemplo
Altere o valor do terceiro item:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock",
"Opera"))
music_genre[3] <- "Opera"
music_genre[3]
Resultado:
[1] Opera Levels: Classic Jazz Pop Rock Opera