Fatores

Fatores são vetores especiais, principalmente usados para variáveis nominais e ordinais nas ciências sociais. Fatores contêm níveis que incluem a descrição dos valores (no SPSS, isso é chamado de rótulos de valor). A diferença essencial em relação aos vetores do tipo character pode ser facilmente identificada com a função as.factor() e o objeto char.

as.factor(char)
## [1] Taipeh Seoul  Berlin Taipeh
## Levels: Berlin Seoul Taipeh

Não apenas obtemos as cidades armazenadas, mas também uma segunda linha que começa com Levels. Níveis são valores únicos presentes no vetor. Neste caso, são apenas três, pois a cidade de Taipei foi mencionada por dois entrevistados. Este tipo de dado específico do R será útil posteriormente para comparação de grupos ou representação gráfica.

Você fez uma alteração no objeto char, mas não a salvou. Para salvar a alteração, você precisa atribuir esta etapa a um objeto:

charFator <- as.factor(char)

Criamos um fator no objeto charFactor. No ambiente, podemos ver o seguinte:

Fator no ambiente
Fator no ambiente

Na propriedade, agora é indicado que se trata de um fator com três diferentes manifestações. No vetor em si, são utilizados valores numéricos que são atribuídos aos respectivos níveis. A ordem segue a listagem dos níveis: Berlim tem o valor \(1\), Seul tem o valor \(2\) e Taipé \(3\). Esse tipo é frequentemente usado para variáveis que possuem nível de escala nominal ou ordinal. Importante: Um fator em si não implica em uma ordem entre os valores, mas apenas inclui as diferenças. Estritamente falando, esse tipo deve ser usado apenas para variáveis nominais.

No entanto, também podemos especificar uma ordem em um fator, para que corresponda a um nível de escala ordinal. Por exemplo, podemos criar um objeto que contenha as notas de seis pessoas no sistema americano. Os valores são: \(A\), \(C\), \(D\), \(B\), \(C\) e \(A\). Lembrando que no sistema americano, \(A\) é o melhor valor e \(D\) é o pior valor. A ordem dos valores é a seguinte: \(D < C < B < A\).

Para isso, primeiro criamos um objeto que contenha os seis valores. Para isso, usamos novamente a função c().

grade <- c(
  "A",
  "C",
  "D",
  "B",
  "C", 
  "A"
)

grade
## [1] "A" "C" "D" "B" "C" "A"

Em seguida, usamos a função factor() e criamos um fator ordenado. A função factor() requer três argumentos para isso. No primeiro argumento, inserimos os dados que devem ser ordenados. No segundo argumento, usamos ordered = TRUE para indicar que não apenas um fator deve ser criado, mas também que uma ordem deve ser considerada. No terceiro argumento, em levels = ..., especificamos a ordem real (ou seja, de \(D\) a \(A\)).

gradeOrd <- factor(
  grade,  # 1. Argument: Dateninput
  ordered = TRUE,  # 2. Argument: Setz eine Ordnung
  levels = c(    # 3. Argument: Angabe, wie geordnet werden soll
    "D",
    "C",
    "B",
    "A"
  )
)

gradeOrd
## [1] A C D B C A
## Levels: D < C < B < A

No ambiente, veremos a propriedade Fator ord. e novamente a especificação dos níveis e sua ordem.

Fator Ordenado no Ambiente
Fator Ordenado no Ambiente

Assim como antes, duas informações são armazenadas: uma vez os níveis com a especificação das notas e depois os valores numéricos que correspondem aos níveis. Os valores numéricos são atribuídos novamente na ordem dos níveis: portanto, \(D\) recebe o valor \(1\), \(C\) recebe o valor \(2\), \(B\) recebe o valor \(3\) e finalmente \(A\) recebe o valor \(4\).

Agora vamos para conjuntos de dados.