Capítulo 2 Conhecendo mais sobre o R e o RStudio
O R é um software gratuito sob uma licença referida no Comprehensive R Archive Network - CRAN (uma rede de servidores no qual cada servidor é conhecido como espelho). Trata-se de uma linguagem de programação, dinâmica, voltada à manipulação, análise e visualização de dados. Foi criada originalmente por Ross Ihaka e por Robert Gentleman no departamento de Estatística da Universidade de Auckland, Nova Zelândia.
Vale ressaltar que a linguagem R é muito intuitiva. A grande maioria dos usuários utiliza o método da tentativa e erro. Sim!
Outro ponto de destaque, é que quando aprendemos a utilizar um certo tipo de função, como por exemplo a função plot
, o aprendizado pode ser replicado para funções similares, como a função barplot
.
O R foi desenvolvido por analistas estatísticos \(\rightarrow\) códigos poucas linhas de comando quando comparado com C++, java ou Python.
O R é uma linguagem interpretada e não compilada \(\rightarrow\) comandos executados diretamente, sem exigir a criação de um programa completo.
A sintaxe do R busca ser intuitiva. Por exemplo, para ajustar um modelo de regressão linear considerando y e x, no inglês seria um linear model, no R ajusta-se a regressão usando o comando lm(y ∼ x).
Quando o R está sendo executado, variáveis, dados, funções, resultados, etc., são armazenados na memória ativa do computador na forma de objetos que possuem um nome.
O usuário pode fazer ações nesses objetos com operadores (aritmética, lógica, comparação, …) e funções.
2.1 Uma função no R
Antes de apresentar o R propriamente dito, iremos antecipar que ele é composto de uma série de funções que estão armazenadas em pacotes. O entendimento destas funções é primordial para facilitar o nosso trabalho com o software.
Uma função no R pode ser esboçada da seguinte maneira:
- Os argumentos podem ser objetos (``dados’’, fórmulas, expressões, …).
- Alguns argumentos podem estar pré-definidos (como o z da função acima, que não precisa ser definido para executar a função, mas pode ser modificado).
- Podem existir funções sem nenhum argumentos (todos pré-definidos).
Podemos citar um exemplo bem simples, a função mean
:
- Considere a função que calcula a média (mean, no inglês):
mean(x, na.rm = FALSE)
. - A função possui dois argumentos:
x
ena.rm
. x
é um vetor numérico (valores) ena.rm
é um operador lógico (desconsiderar os valores faltantes).na.rm
é um argumento pré-definido.- Para executarmos a função, obrigatoriamente é preciso inserir o argumento
x
. - Os argumentos podem ser informados em qualuqer ordem, desde que seu nome seja especificado na função, isto é, podemos usar
mean(x = idade, na.rm = FALSE)
oumean( na.rm = FALSE, x = idade)
, mas não podemos usarmean(FALSE, idade)
.
As funções costumam “residir” em pacotes no R. Abordaremos uma discussão mais aprofundada sobre este assunto mais a frente.
2.2 As janelas do RStudio
O RStudio é um ambiente de desenvolvimento integrado para o R. Inclui recursos que permitem aumentar a produtividade e é executado em todas as principais plataformas. Sua interface facilita o uso do R.
As quatro janelas acima represetam o Script, o Console, o Environment e o Output. A ordenação das janelas costuma ser a apresentada na figura acima, mas podemos fazer uma reorganização das mesmas acessando o menu Tools
\(\rightarrow\) Global options
\(\rightarrow\) Pane Layout
.
As duas janelas localizadas a esquerda são as principais áreas de trabalho. A do canto superior, chamada de Script, é a janela de edição, isto é, a janela onde escreveremos nossos códigos. A do canto inferior, chamada de Console, é o próprio R. Nesta janela os códigos são compilados.
Funcionalidades do RStudio na janela Script:
- colore algumas palavras e símbolos com cores diferentes para facilitar a leitura do código.
- possui o recurso de autocompletar o nome das funções a medida que digitamos no Script ou mesmo o nome de objetos já criados.
- apresenta uma breve descrição da função que estamos usando, mostrando seus principais argumentos.
Já as janelas localizadas a direita são auxiliares e muito úteis. Podemos citar como principais recursos o fato delas:
- listarem todos os objetos criados durante uma sessão de trabalho,
- apresentarem o histórico dos códigos compilados,
- organizarem os gráficos (permitindo acessar os diversos gráficos criados),
- documentação das funções e permitem a instalação de pacotes.
A seguir apresentamos uma breve descrição das funções das principais janelas:
- Script: é onde escrevemos nossos códigos.
- Console: é onde rodamos os códigos e recebemos as saídas.
- Environment: janela com todos os objetos criados na sessão de trabalho.
- History: janela com um histórico dos comandos compilados
- Files: mostra os arquivos no diretório de trabalho. É possível navegar entre diretórios.
- Plots: janela onde os gráficos serão apresentados.
- Help: janela onde a documentação das funções serão apresentadas.
- Packages: é onde fazemos instalação de pacotes no R.
2.3 Criando um projeto
De forma bem simples, podemos dizer que um projeto é uma pasta no seu computador. O importante, é que ela conterá todos os arquivos relacionaods a análise que estamos realizando.
Esta funcionalidade é muito útil por uma questão de organização e deve ser tomada como uma boa prática para qualquer cientista de dados.
Vamos iniciar com a criaçào de um projeto chamado Analise1. Para tal, acesse o menu File
\(\rightarrow\) New Project
. Após isso, podemos escolher criar um novo diretório ou usar um diretório existente para hospedar nosso projeto. Vamos criar um novo diretório. Clique em New Directory
.
Na janela a seguir, escolheremos o tipo de projeto que será criado. Clique em New Project
.
A janela seguinte, nos permite escolher o nome da pasta que hospedará o projeto e o diretório onde a mesma será salva.
Após a criação do projeto, o RStudio indicará qual o projeto está vigente como mostra a figura abaixo.
2.3.1 Criando um primeiro Script
Com o projeto criado, podemos dar início ao construção do nosso primeiro Script. Relembrando que no Script armazenaremos todos os códigos da nossa sessão de trabalho. Para a criação de um novo script basta clicarmos no menu File
\(\rightarrow\) New File
\(\rightarrow\) R Script
.
Digite os códigos indicados no Script abaixo.
Para executarmos os códigos criados, podemos recorrer ao botão run
ou ao atalho Ctrl + Enter (command + enter no Mac).
Basta posicionar o cursor em uma linha (em qualquer local desta linha) e executar o botão run. A linha será compilada no Console.
Para executarmos mais de uma linha, selecionamos as linhas desejadas e executamos o botão run ou o usamos o atalho Ctrl + Enter.
O # serve para incluirmos comentários no Script. Esta documentação do Script é fundamental para uma melhor organização do nosso trabalho.
Importante: Só podemos executar códigos no R, se o console estiver apto a receber novos comandos, isto é, >.
Após a criação do Script, é fundamental salvarmos o mesmo, pois assim ele poderá ser consultado numa futura sessão de trabalho para complementarmos as análises realizadas ou mesmo refazermos análises já criadas. Para tal, basta acessarmos o menu File
\(\rightarrow\) Save
ou Save As
. Escolha o nome com o qual você deseja salvar o arquivo. A extensão do arquivo sera .R.
2.3.2 Encerrando uma sessão de trabalho
Com o Script salvo, para encerrarmos uma sessão de trabalho no RStudio, basta acessarmos o menu File
\(\rightarrow\) Quit Session...
.
Como o Script já encontrava-se salvo, o RStudio vai oferecer para salvar o workspace (um arquivo .RData), um arquivo que abriga todos os objetos criados em uma sessão de trabalho no R. Esses arquivos tendem a ser grandes e não são necessários a grande maioria das vezes. Escolha a opção Don't Save
.
2.4 Pedindo ajuda
Já ressaltamos que a linguagem R é muito intuitiva e que devemos abusar do método da tentativa e erro!
Ao realizarmos esse modus operandi, podemos acabar precisando de uma ajuda. Felizmente, a comunidade R é bem ativa, e existem muitas formas de obtermos a mesma.
Podemos destacar os principais canais abaixo:
- Help do R;
- Google;
- Stack Overflow.
2.4.1 Help do R
O help do R traz tudo o que nós precisamos saber para usarmos uma determinada função. Trata-se de uma documentação contendo descrição, argumentos, forma de usar, saída e exemplos.
Para acessarmos a documentação de uma função, basta usarmos ?nome_da_funcao
ou help(nome_da_funcao)
. Vamos acessar o help da função mean
utilizada no nosso primeiro Script.
#primeira forma de acessarmos o help da função mean
?mean
#forma alternativa de acessarmos o help da função mean
help(mean)
2.4.2 Google
A comunidade de usuários do R é grande e produtiva, gerando conteúdos e discussões constantes na rede. Naturalmente, pesquisas na língua inglesa aumentam consideravelmente a chance de encontrarmos uma resposta, como acontece com outras linguagens. Outra dica que pode ser bastante útil é a inclusão de um ‘r’ na busca.
sum(1,"a")
#Error in sum(1, "a") : invalid 'type' (character) of argument
2.4.3 Stack Overflow
O Stack Overflow e o Stack Overflow em Português são sites de Pergunta e Resposta amplamente utilizados por muitas linguagens de programação, incluindo o R.
Caso não encontre um problema (e a solução do mesmo) similar ao seu no site, o Stack Overflow lhe dará o espaço para criar sua própria pergunta.
2.5 Instalando pacotes
Podemos dizer que um dos grandes diferenciais do R são seus inúmeros pacotes que contém funções para realizar análise de dados. Perceberemos que a instalação de pacotes trata-se de uma atividade rotineira na vivência com o R.
A seguir apresentamos as duas principais formas de instalarmos pacotes no R. Em ordem de frequência, são:
2.5.1 Via CRAN
Podemos instalar pacotes que não estão na sua biblioteca usando a função install.packages(pkgs = "nome_do_pacote")
, por exemplo, a seguir, vamos instalar o pacote maptools.
#instalando o pacote maptools do CRAN
install.packages(pkgs = "maptools")
De forma alternativa, podemos usar o seguinte caminho: Packages
\(\rightarrow\) Install
.
2.5.2 Via Github
Muitos usuários do R que desenvolvem pacotes costumam disponibilizar a última versão de seus pacotes no Github, incluindo pacotes que não estão no CRAN. Para instalar um pacote do GITHUB é preciso ter o pacote devtools
instalado. O comando é igualmente simples:
#instalando o pacote ghit do GITHUB
::install_github("cloudyr/ghit") devtools
Observação - Quando usamos a sintaxe PacoteA::funçãoZ estamos garantindo que a função funçãoZ usada pertence necessariamente ao pacote PacoteA.
Apenas será necessário o username e o nome do repositório (que geralmente tem o mesmo nome do pacote). No exemplo, o username foi cloudyr e o repositório foi ghit.
Caso você não tenha familiaridade com o github, não se preocupe! Os pacotes disponibilizados na plataforma geralmente têm um arquivo README cuja primeira instrução é sobre a instalação.
2.6 Universo tidyverse
Nós (interessados em analisar dados) precisamos falar sobre o tidyverse
!
O tidyverse
é um conjunto de pacotes do R que auxiliam o cientista de dados na execução de diversas tarefas corriqueiras de forma eficiente e unificada. Vamos inicialmente pensar em eficiência no sentido da velocidade de solucionar o problema e não da velocidade de execução de algoritmos. Os pacotes pertencentes a este universo compartilham de uma filosofia, gramática e estrutura de dados, o que permite uma maior integração entre eles.
Se você é novo no tidyverse
, o melhor lugar para você aprender a filosofia completa e como tudo se encaixa é o livro R for data science de autoria do Garret Grolemund e do Haddley Wickham.
O tidyverse
é considerado um “universo” a parte do R, principalmente porque todas suas ferramentas possuem formas de uso consistentes e funcionam muito bem em conjunto.
Os princípios do tidyverse
são:
2.6.1 Eficiência algorítmica vs eficiência de trabalho.
Estamos dizendo que o tempo que o cientista de dados gasta pensando em como realizar uma operação é mais importante do que o tempo que o computador gasta para realizar um cálculo.
2.6.2 Tidy data
É um princípio para arrumação da base de dados que resolve, usualmente, mais de 80% dos problemas reais. O objetivo na arrumação dos dados é extrair e transformar uma base de dados até que ela esteja em formato tidy. Uma base de dados é considerada “tidy” se cada observação é uma linha da base, cada variável é uma coluna da base e cada dado está numa célula da base.
2.6.3 Utilização do operador |> (pipe)
Operador que revolucionou/facilitou a lógica de programar no R.