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.
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.
Após realizar o comando podemos usar a função unique(). para verificar se a nova coluna foi corretamente criada, com as categorias designadas.
## [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.