3.4 Criando variáveis

Muitas vezes, os dados chegarão a nós codificados de uma certa maneira, mas podemos desejar transformá-los para torná-los mais fáceis de se trabalhar.

No R, criar uma nova variável (ou coluna) em um data frame pode ser feito de forma simples utilizando várias funções e operadores.

3.4.1 Operações matemáticas

O operador $ nos permite adicionar diretamente uma nova coluna a um data frame.

Digamos que queremos criar uma nova variável cujo valor seja a diferença entre o preço do bem e o valor do emprestimo. Vamos dizer ao R que a nova variável (que chamaremos de dif) será a subtração do preço do bem pelo valor do empréstimo.

dados$dif<- (dados$preco_do_bem-dados$valor_emprestimo)

3.4.2 Usando o comando ifelse

Você pode criar variáveis novas baseadas em condições usando o ifelse()., uma função muito útil no R. Ela permite aplicar uma condição a cada elemento de um vetor e retornar um valor específico dependendo se a condição é verdadeira ou falsa. Isso é muito útil para manipulação de dados e criação de novas variáveis com base em condições.

A função ifelse() é lida como uma frase.

O que a frase acima no indica é que:

1-Queremos criar uma nova variável chamada aprovacao, no dataframe alunos.

2-Pedimos ao R para verificar o valor da variável nota no dataframe alunos

3- Caso a nota seja maior ou igual a 60, a variável aprovacao ganhará o valor “Aprovado”. Caso a nota seja inferior a 60, a variável ganhará o valor “Reprovado”.

Podemos criar variáveis através de uma série de operadores condicionais diferentes.

Igual ou diferente

Os operadores igual (==) ou diferente (!=) podem ser utilizados com variáveis numéricas ou categóricas.

Voltemos à nossa base de dados do curso. Digamos que queremos criar uma nova variável que nos indique se determinado indivíduo na nossa base de dados é um trabalhador autônomo ou não. Caso seja um trabalhador autônomo a variável ganhará o valor “sim” e “não” caso não seja.

Utilizamos o operador == para indicar que queremos condicionar os valores iguais a “autônomo” na variável trabalho.

#Criar nova variável aut

dados$aut<-ifelse(dados$trabalho=="autônomo","sim","não")

#Visualizar nova variável

head(dados$aut)
## [1] "sim" "não" "sim" "não" "não" "não"

Podemos realizar a operação contrária, pedindo ao R para criar os valores baseados nos indivíduos que não são autonomos. Aqui ao invés do operador ==, utilizamos != para sinalizar que queremos condicionar os valores diferentes de “autônomo” na variável trabalho.

#Criar nova variável naoaut

dados$naoaut<-ifelse(dados$trabalho !="autônomo","sim","não")

#Visualizar nova variável

head(dados$naoaut)
## [1] "não" "sim" "não" "sim" "sim" "sim"

Podemos também utilizar a função mutate() do dplyr, que é utilizada para criar novas colunas ou modificar colunas existentes.

#Criar nova variável naoaut com o mutate

dados <- dados %>%
  mutate(naoaut = ifelse(trabalho != "autônomo", "sim", "não"))

#Visualizar nova variável

head(dados$naoaut)
## [1] "não" "sim" "não" "sim" "sim" "sim"

Maior e menor que

Os operadores maior (>), maior ou igual (>=), menor (<) e menor ou igual (<=) que são utilizados com variáveis numéricas.

Vamos utilizar a variável idade para mostrar a utilidade dos operadores matemáticos “maior que” e “menor que”. Digamos que queremos criar uma nova variável qualitativa que mostre quem são os idosos na nossa base de dados.

Pedimos ao R para selecionar todas observações igual ou maiores que 60 da variável idosos. Se essa condição for verdadeira, queremos que na nova variável tenhamos uma categoria “Idosos”. Se falso, queremos associar a categoria “Adultos” aos indivíduos.

#Criar nova variável idadeQ

dados$idadeQ<-ifelse(dados$idade>=60,"Idosos","Adultos")

Após realizar o comando podemos usar a função unique(). para verificar se a nova coluna foi corretamente criada, com as categorias designadas.

#Visualizar variável

unique(dados$idadeQ)
## [1] "Adultos" "Idosos"

Vamos complexificar um pouco mais. Digamos que agora nós queremos criar 3 categorias diferentes.

Todos indivíduos com menos 40 anos serão classificados como jovem adultos. De 40 a 59 anos, como adultos e mais de 60 anos, como idosos.

Teremos a seguinte estrutura:

#Criar nova variável idadeQ

dados$idadeQ<-ifelse(dados$idade<40,"Jovem adultos",ifelse(dados$idade>=40 & dados$idade<60, "Adultos","Idosos"))

#Visualizar variável

unique(dados$idadeQ)
## [1] "Jovem adultos" "Adultos"       "Idosos"

O operador & é utilizado para indicar que temos que obedecer mais de uma condição ao mesmo tempo.

Podemos criar quantas categorias quisermos, usando a lógica apresentada.