Programação em R – Parte 4 (Fatores)

//Programação em R – Parte 4 (Fatores)

Programação em R – Parte 4 (Fatores)

Fatores ordenados e não ordenados

Um fator é
um objeto vetorial usado para especificar uma classificação
discreta (agrupamento) dos componentes de outros vetores do mesmo
comprimento. R fornece fatores ordenados e não ordenados.
Fatores podem ser
identificados automaticamente através da linguagem R, e servem para
“categorizar” os valores de alguma variável ou objeto.
Suponhamos, por
exemplo, que tenhamos uma amostra de informações de escolas
espalhadas pelo Brasil, com a indicação do estado em que cada
escola se localiza sendo especificado por um vetor de siglas
estaduais como abaixo
> escolas

“GO”, “MA”, “MT”, “MS”,
“MG”, “PA”, “PB”, “PE”,
“PI”, “PR”, “RJ”, “RN”, “RO”,
“RR”, “RS”, “SC”
“SE”, “SP”, “TO”, “BA”,
“SP”, “RJ”)
Observe que, no caso
de um vetor de caracteres, “ordenado” significa ordenados
em ordem alfabética.
Um fator pode ser
criado de forma semelhante usando a função factor ():
> estados

A função print ()
lida com fatores ligeiramente diferentes de outros objetos:
> estados
[1] “AC”,
“AL”, “AP”, “AM”, “BA”, “CE”,
“DF”, “ES”,
[9] “GO”,
“MA”, “MT”, “MS”, “MG”, “PA”,
“PB”, “PE”,
[17] “PI”,
“PR”, “RJ”, “RN”, “RO”, “RR”,
“RS”, “SC”
[26] “SE”,
“SP”, “TO”
Levels: “AC”,
“AL”, “AP”, “AM”, “BA”, “CE”,
“DF”, “ES”,
“GO”,
“MA”, “MT”, “MS”, “MG”, “PA”,
“PB”, “PE”,
“PI”,
“PR”, “RJ”, “RN”, “RO”, “RR”,
“RS”, “SC”
“SE”,
“SP”, “TO”
Para descobrir os
níveis de um fator, a função levels() pode ser usada.
> levels
(escolas)
[1] “AC”,
“AL”, “AP”, “AM”, “BA”, “CE”,
“DF”, “ES”,
[9] “GO”,
“MA”, “MT”, “MS”, “MG”, “PA”,
“PB”, “PE”,
[17] “PI”,
“PR”, “RJ”, “RN”, “RO”, “RR”,
“RS”, “SC”
[25] “SE”,
“SP”, “TO”

A função
tapply ()

Suponhamos que
tenhamos a quantidade de alunos das mesmas escolas em outro vetor
(valores apenas para efeito didático).
> alunos

610, 610, 610, 580, 510, 480, 650, 490, 490, 410, 480, 520,
460,
590, 460, 580, 430)
Para calcular a
média de alunos por escola para cada estado, agora podemos usar a
função especial tapply().
Primeiro vamos criar
um dataframe com todos os dados, para organizar melhor as
informações.
df

df$escolas

df$alunos

Agora, podemos
simplesmente usar a função tapply() da seguinte forma:
>
mediaalunos

resultando no vetor
de médias rotuladas pelos níveis (estados)
[1] “AC”,
“AL”, “AP”, “AM”, “BA”, “CE”,
“DF”, “ES”,
[9] “GO”,
“MA”, “MT”, “MS”, “MG”, “PA”,
“PB”, “PE”,
[17] “PI”,
“PR”, “RJ”, “RN”, “RO”, “RR”,
“RS”, “SC”
[25] “SE”,
“SP”, “TO”
[1] 800,
3000, 700, 800, 550 ((640+460)/2), 600, 590, 540
[9] 620, 690,
700, 420, 560, 610, 610, 610,
[17] 580,
510, 455 ((480+430)/2), 650, 490, 490, 410, 480
[25] 520, 520
((460+580)/2), 590
Note que apenas as
escolas cujos estados se repetem sofreram alteração no valor do
resultado, pois foi calculada a média de alunos para o mesmo estado.
Nos casos em que a a sigla estado tinha apenas uma ocorrência, o
valor resultante foi igual ao do vetor original.
A função tapply ()
é usada para aplicar uma função, neste caso a média – mean(),
para cada grupo de componentes do primeiro argumento (quantidade de
alunos), definidos pelos níveis do segundo componente (estados das
escolas), como se fossem estruturas vetoriais separadas. O resultado
é uma estrutura do mesmo comprimento que o atributo de níveis do
fator que contém os resultados.
Como exercício,
você pode imaginar outros usos da função tapply() para analisar
dados dos alunos de escolas. Experimente acrescentar novas colunas ao
data frame com informações como a região de cada estado, e obtenha
um resumo consolidado da quantidade de alunos por região do país.
A função tapply ()
também pode ser usada para lidar com indexação mais complicada de
um vetor por várias categorias. Por exemplo, talvez desejemos
dividir os alunos tanto pelo estado como pelo sexo. No entanto, neste
exemplo simples (apenas um fator), o que acontece pode ser pensado da
seguinte maneira. Os valores no vetor são coletados em grupos de
acordo com cada fator, ou seja, grupos de alunos por estado e por
sexo são considerados para os cálculos. A função é então
aplicada a cada um desses grupos individualmente. O valor é um vetor
de resultados de função, rotulado pelos níveis de cada fator.
A combinação de um
vetor e um fator de rotulagem é um exemplo do que às vezes é
chamado de uma matriz irregular, uma vez que os tamanhos da subclasse
são possivelmente irregulares. Quando os tamanhos da subclasse são
todos iguais, a indexação pode ser feita de forma implícita e
muito mais eficiente.

Fatores
ordenados

Os níveis de
fatores são armazenados em ordem alfabética, ou na ordem em que
foram especificados como fatores se fossem especificados
explicitamente.
Às vezes, os níveis
terão uma ordem natural que queremos gravar e queremos que nossa
análise estatística faça uso. A função ord() cria esses
fatores ordenados, mas é idêntica ao fator. Para a maioria dos
propósitos, a única diferença entre os fatores ordenados e não
ordenados é que os primeiros são impressos mostrando a ordenação
dos níveis, mas os contrastes gerados para eles na montagem de
modelos lineares são diferentes.

Conclusão

E então, interessante mais esse recurso da linguagem R, não é mesmo?
São tantos facilitadores que a cada dia nos surpreendemos com maneiras mais simples de realizar operações que a princípio envolveriam uma certa compexidade.
Que tal mostrar que você entendeu o conceito de fatores e colocar nos comentários o código que faz a análise dos alunos por região do país? Você consegue!


Ficou com alguma dúvida?
Tem interesse em treinamentos em R?
By |2018-08-29T10:16:41+00:00março 29th, 2018|Sem categoria|0 Comments

About the Author:

Leave A Comment