Capítulo 1 Primeiros passos
1.1 O que é R?
O R é uma linguagem e ambiente voltados para estatística computacional e gráficos. Aberto e gratuito, é compatível com Windows, UNIX e MacOS. Nos últimos anos o R tem crescido exponencialmente e possui aplicações nas mais variadas áreas de conhecimento, como: finanças, marketing, estatística, economia, farmacêutica, ciências sociais, biologia e etc. Tal fato posicionou o R como a sétima linguagem mais popular conforme o Ranking IEEE Spectrum de 2021.
O R pode se referir as duas coisas: ao software utilizado para executar o código escrito na linguagem R e à linguagem em si. Para mais informações, podemos visitar o site do Projeto R
1.2 Bibliografia indicada
Atualmente há centenas de bons livros sobre R, muitos deles disponibilizados de forma gratuita on-line. Há algumas obras em português ou traduzidas para o português mas a maioria da bibliografia mais famosa está em inglês. Segue uma lista da bibliografia indicada para iniciantes no R.
- R in a Nutshell: A Desktop Quick Reference (Adler 2012)
- Learning R: A Step-by-Step Function Guide to Data Analysis (Cotton 2013)
- R for Data Science: Import, Tidy, Transform, Visualize, and Model Data (H. Wickham e Grolemund 2017) (possui versão em português)
- 25 Recipes for Getting Started with R (Teetor 2011)
- R Cookbook: Proven Recipes for Data Analysis, Statistics, and Graphics (Teetor 2019)
- The Essential R Reference (Gardener 2012)
- R Graphics Cookbook - 2nd edition (Chang 2018)
1.3 Onde procurar ajuda?
Há uma infinidade de meios onde podemos encontrar tutoriais, dicas, vídeos e etc. No entanto, seguem alguns dos locais onde podemos solucionar problemas e esclarecer dúvidas.
- Documentação dos pacotes;
- Comunidade do RStudio;
- StackOverflow;
- GitHub.
1.4 Instalando o R
Para instalar o R, basta seguir os seguintes passos:
- Visite um dos CRAN Mirrors fazer o download do software. Sugerimos: (https://vps.fmvz.usp.br/CRAN/);
- Escolha a versão para o seu sistema operacional (Linux, Mac OS ou Windows);
- Na página seguinte, escolha a versão base;
- Baixe o arquivo disponível no link e instale!
1.5 Instalando o RStudio
O RStudio é um ambiente de interface gráfica para o R, ou melhor, um IDE (Integrated Development Environment). Atualmente o RStudio é considerado a melhor IDE para quem programa em R. Além de uma interface mais amigável, possui diversas funcionalidades que facilitam o aprendizado e a produtividade. O RStudio possui uma versão para desktop grátis e, para baixar e instalar, basta seguir os seguintes passos:
- Ir até a página de download do RStudio;
- Clicar em download para a versão grátis;
- Escolher o instalador de acordo com o seu sistema operacional (Windows, Mac OS, Linux);
- Após o download, realizar a instalação.
Há alguns anos o RStudio também passou a disponibilizar uma versão na nuvem através do RStudio Cloud, o que permite acessar o ambiente de qualquer navegador e compartilhar projetos de uma maneira muito simples com outras pessoas. Recentemente houve uma atualização dos planos disponíveis e dos respectivos recursos computacionais disponibilizados.
1.6 Preparando o ambiente de trabalho no RStudio
Uma vez instalado o RStudio, é hora de ajustarmos pequenos detalhes. Uma das primeiras coisas que sugerimos definir no RStudio é a posição de cada um dos principais painéis, quais sejam:
- Console: onde o código é executado. Nele é possível visualizar tudo que é executado e as saídas dos comandos executados no script ou no próprio console;
- Source: Onde ficará posicionado o script que está a desenvolver;
- Enviroment, history, connections e etc: Uma série de abas onde podemos visualizar os objetos do ambiente, histórico de execuções, conexões e etc.
- Plots, files, packages, help, viewer e etc. Visualização dos gráficos, arquivos e pastas, ajuda e etc.
A segunda coisa que sugerimos fazer é definir a aparência (Preferences > Apperance
). Talvez não faça sentido para muitos, mas utilizar sempre a mesma aparência facilita o aprendizado e rapidamente identificar erros nos código. As cores ajudam muito a nos ambientarmos. Por questões de conforto visual, utilizar um tema com o fundo escuro ajuda bastante. Sugerimos o tema Idle Fingers. Tamanho da fonte, zoom e tema do RStudio também podem ser alterados na aba de aparência.
Sugerimos que o ambiente seja dividido nessas quatro partes, conforme apresentado na figura a seguir. Particularmente utilizamos nessa disposição, mas essa ordem pode ser alterada nas preferências do RStudio. O importante é que você utilize sempre a mesma disposição por questões de hábito. É algo muito pessoal.
1.7 Criando um projeto no RStudio
É recomendável que você crie um projeto referente a cada trabalho que você desenvolve no RStudio. Os projetos dividem o trabalho em seus próprios contextos, cada projeto possui seu diretório de trabalho, seu espaço, histórico e documentos.
Para criar um novo projeto basta ir em File > New Project… no menu superior do RStudio. A janela apresentada na Figura 1.2 irá aparecer.
Uma outra facilidade de trabalhar com os projetos é que você pode facilmente mudar de um projeto para outro no menu do canto superior direito. Quando você muda de projeto, é possível retornar ao ponto que parou anteriormente, seus objetos carregados, scripts e janelas abertas estarão lá.
1.8 Operações básicas
1.9 Principais operações aritméticas e lógicas com R
Antes de iniciarmos as primeiras operações com o R, é necessário conhecer os principais operadores aritméticos e lógicos. Segue tabela com os principais operadores e uma breve descrição de cada um.
Operador | Descrição |
---|---|
+ |
Operador de adição |
- |
Operador de subtração |
* |
Operador de multiplicação |
/ |
Operador de divisão |
: |
Operador de sequência |
^ |
Operador exponencial |
%% |
Operador de módulo |
== |
Operador de igualdade |
> |
Operador “maior que” |
< |
Operador “menor que” |
<= |
Operador “menor ou igual” |
& |
Operador lógico “E” |
| |
Operador lógico “OU” |
Conhecido tais operadores, podemos realizar nossas primeiras operações no console do R. Segue alguns exemplos com os respectivos resultados
#Exemplo de soma
347 + 328
## [1] 675
#Exemplo de subtração
567 - 345
## [1] 222
#Exemplo de multiplicação
457 * 32
## [1] 14624
1.10 Tipos numéricos
Recorrentemente lidamos com diferentes classes numéricas no R. Podemos nos deparar com números inteiros (integer), números decimais (numeric ou double) ou números complexos (complex). Para verificarmos a classe de um número, basta usarmos a função class()
no número ou na variável que desejamos testar. Vejamos os exemplos a seguir:
class(3L) #Um número inteiro pode também ser representado acompanhado de um L
## [1] "integer"
class(3.435)
## [1] "numeric"
class(3 + 3i)
## [1] "complex"
Interessante observarmos que o R, por padrão, utiliza o .
como separador decimal. Trabalharemos dessa forma dentro do R e faremos as adaptações necessárias na hora de exportar ou comunicar os resultados.
NOTA: Para representar o infinito, o R utiliza
Inf
e-Inf
. Faça o teste realizando a seguinte operação no console:1 / 0
1.11 Caracteres
Além dos números, podemos criar, guardar e manipular dados do tipo carácter, ou seja, em texto. Os dados em texto são atribuídos entre aspas, vejamos:
<- "Esse curso de R é razoável."
t
t
## [1] "Esse curso de R é razoável."
NOTA: Ao longo do conteúdo aprenderemos diversas funções para manipulação de texto!
1.12 Criando e removendo variáveis
Até então realizamos algumas operações sem a necessidade de armazenar dados. No entanto, em operações mais complexas é praticamente impossível não utilizarmos variáveis. Com a criação de uma variável, podemos facilmente reusá-la ao longo de nosso código. Vejamos um exemplo.
<- 3
x
+ 10 x
## [1] 13
No exemplo anterior, criamos uma variável x
para armazenar o valor numérico 3. Ao realizarmos a operação x + 10
, automaticamente o valor atribuído a x
é recuperado. Para criarmos uma variável, utilizamos o símbolo <-
ou =
. No entanto, a notação <-
é a mais utilizada e será a adotada ao longo do nosso curso.
Os nomes das variáveis podem conter letras, números, pontos e sublinha (_
), mas não podem iniciar com um número ou um ponto seguido de número. Também não podemos criar variáveis com palavras reservadas, como TRUE
, FALSE
e etc.
NOTA: Por questão de estética e praticidade, é recomendável que você mantenha os nomes das variáveis apenas com letras minúsculas. As variáveis devem ter nomes curtos e revelar um pouco da informação que guarda. Isso facilitará a leitura do código!
Aqui é importante destacar que o R é case sensitive (“sensível à capitalização”), ou seja, há uma distinção entre letras maiúsculas e minúsculas! Isso significa que uma variável chamada nome
é diferente de uma denominada Nome
, ou NOME
.
Uma vez criada uma variável (ou qualquer outro objeto no R), podemos facilmente remove-la aplicando a função rm()
. Vejamos o exemplo seguinte.
<- 25
idade
rm(idade)
1.13 Valores lógicos
No R, há três valores lógicos, são eles: TRUE
, FALSE
, e NA
. Esses valores lógicos serão vistos durante todo o curso, uma vez que estão presentes em funções, operações lógicas, estruturas de dados e etc. Os valores TRUE
e FALSE
também podem ser substituídos por T
e F
respectivamente.
Em breve síntese, o valor lógico TRUE
é normalmente retornado por uma operação lógica verdadeira e assume valor 1
, enquanto o FALSE
faz o papel inverso, assumindo valor 0
.
Por sua vez o NA
representa a ausência de valor e merece atenção máxima, principalmente quando está presente em estruturas de dados. O NA
é altamente infeccioso e pode causar sérios problemas na filtragem e tratamento de dados. Veremos com mais detalhes nos capítulos seguintes como tratar e manipular valores ausentes. Para entendermos melhor o comportamento desses valores lógicos, vamos ao tópico seguinte.
1.14 NA e NULL
Apesar de serem bem parecidos em sua natureza o NA
e o NULL
possuem diferenças sutis mas de grande importância. De acordo com a própria documentação do R, o NULL
representa o objeto nulo do R sendo o mesmo retornado por expressões e funções nas quais os valores são indefinidos. Por sua vez, o NA
(Not Avaible) é uma constante lógica que possui um indicador de valor ausente. Podemos ver o comportamento dos dois ao aplicar a função class()
em cada um deles.
class(NULL)
## [1] "NULL"
class(NA)
## [1] "logical"
1.15 Operações lógicas
Já vimos alguns operadores no item 1.9 e vamos aprender mais alguns nesse item.
O primeiro exemplo de operação lógica que vamos aprender é a igualdade. No R, o operador lógico de igualdade é o ==
. Vejamos o exemplo que segue:
1 == 1
## [1] TRUE
Como, obviamente, 1
é igual a 1
o valor lógico retornado é o TRUE
, o que confirma que a operação é verdadeira. Se quisermos testar se um valor é diferente de outro, usamos o operador !=
(não igual a). Exemplo a seguir.
3 != 4
## [1] TRUE
A mesma lógica segue com os demais operadores.
1 > 0
## [1] TRUE
100 < 1
## [1] FALSE
5 >= 6
## [1] FALSE
Para fazermos um teste conjunto, precisamos de outros operadores, como o &
(E) e o |
(OU). O primeiro é utilizado para quando queremos que os dois testes lógicos sejam atendidos simultaneamente.
<- 10
x <- 11
y
> 1 & y < 10 x
## [1] FALSE
Veja que primeiro foi testado se x
é maior do que 1
. Como a variável citada guardava o valor 10, o primeiro teste foi verdadeiro. No entanto, no segundo teste y
não é menor do que 10, o que resulta em falha da segunda condição. Dessa forma, o valor final da operação é FALSE
uma vez que ambas as condições não foram atendidas.
Por sua vez, se repetirmos o mesmo código com o operador |
no lugar do &
, teremos o valor TRUE
como retorno, uma vez que pelo menos uma das condições foram atendidas.
<- 10
x <- 11
y
> 1 | y < 10 x
## [1] TRUE
Para finalizarmos esse item, vamos ver o operador !x
(Não \(x\)) que serve para negar o resultado da operação. Segue exemplo.
<- 10
w !(w < 10)
## [1] TRUE
Veja que o resultado é o inverso da operação w < 10
, uma vez que a mesma retornou TRUE
.
NOTA: Entender as operações lógicas é de grande importância para a utilização de filtros, algo que veremos mais adiante.
1.16 Introdução às funções
O R já traz consigo, por padrão, diversas funções, sejam elas matemáticas, estatísticas, para leitura de arquivos, manipulação de texto e etc.
Vamos pensar inicialmente a função no R como uma função matemática. Vejamos a função seguinte.
\[f(x) = x + 2\] Fica fácil compreender que quando \(x\) for 0 o resultado da função será 2.
No R, as funções possuem comportamento semelhante. Em resumo, a função no R é como uma máquina que recebe a matéria prima de um lado e entrega o produto pronto do outro.
Segundo Grolemund (Grolemund 2014), todas as funções no R possuem as mesmas partes, quais sejam:
- nome: é como o usuário pode chamar a função, seguindo de
()
; - os argumentos: as partes onde o usuário pode apontar valores e configurar para alcançar o resultado desejado;
- o corpo: A parte do código que o R executa sempre que a função é chamada;
- os valores padrão: argumentos opcionais que podem ser configurados pelo usuário;
- o resultado: o resultado gerado pela função.
Vejamos algumas funções básicas no quadro a seguir.
Função | Descrição |
---|---|
sum() |
Retorna a soma |
mean() |
Retorna a média |
sd() |
Retorna o desvio padrão |
median() |
Retorna a mediana |
var() |
Retorna a variância |
cor() |
Retorna a correlação entre dois vetores |
min() |
Retorna o mínimo |
max() |
Retorna o máximo |
range() |
Retorna o mínimo e o máximo |
summary() |
Retorna um sumário dos dados |
quantile() |
Retorna os quantis do conjunto numérico |
round() |
Retorna o valor arredondado |
NOTA: Lembre-se que para ler sobre qualquer função no R basta digitarmos
?
seguidos do nome da função no console. Lá é possível ver exemplos de utilização, seus argumentos, sua descrição e etc.
Veremos com mais detalhes argumentos importantes de cada uma dessas funções nos tópicos seguintes e também como criarmos nossas próprias funções.
1.17 Exercícios
Resolva os exercícios sem a utilização do R.
Exercício 1.1 Qual o valor de T
após a operação que segue?
<- 100 T
Exercício 1.2 Qual o valor final de y
no código abaixo?
<- 10
y <- 10 + y y
Exercício 1.3 Qual o valor da soma de k
+ w
no código a seguir?
<- "10"
k <- "32"
w
+ w k
Exercício 1.4 Você saberia explicar o motivo da operação abaixo retornar o valor lógico F
?
<- 3
x & 0 x
## [1] FALSE
Exercício 1.5 Qual o resultado da operação lógica abaixo?
1 > 0 & 1 == 0 & 1 <=0
Exercício 1.6 Qual o resultado da operação lógica abaixo?
!NA