1  R e RStudio

O R é um software de código aberto distribuído gratuitamente sob uma licença disponibilizada pelo Comprehensive R Archive Network (CRAN). O CRAN é uma rede de servidores, cada um conhecido como espelho, que hospeda o software. Desenvolvido inicialmente por Ross Ihaka e Robert Gentleman no Departamento de Estatística da Universidade de Auckland, na Nova Zelândia, o R é uma linguagem de programação dinâmica concebida para a manipulação, análise e visualização de dados.

Uma das características marcantes do R é a sua intuitividade. É comumente utilizado por meio de abordagens experimentais, permitindo aos usuários aprenderem por meio de tentativa e erro. Por exemplo, para realizar um ajuste de modelo de regressão linear com as variáveis y e x, enquanto em inglês você precisaria usar o termo “linear model”, no R você pode simplesmente usar o comando lm(y ~ x). Além disso, a aprendizagem de funções específicas, como plot, pode ser facilmente transferida para funções semelhantes, como barplot.

O R se destaca pela capacidade de produzir código conciso e eficiente, muitas vezes exigindo menos linhas de comando do que linguagens como C++, Java ou Python. Trata-se de uma linguagem interpretada, o que significa que os comandos são executados diretamente, eliminando a necessidade de compilar programas completos.

Durante a execução no R, variáveis, dados, funções e resultados são armazenados na memória ativa do computador como objetos nomeados. O usuário pode manipular esses objetos utilizando uma variedade de operadores aritméticos, lógicos, de comparação e funções disponíveis na linguagem.

1.1 Uma função no R

Antes de nos aprofundarmos nos detalhes do R, é crucial ressaltar que ele é estruturado em um conjunto de funções agrupadas em pacotes. Dominar estas funções é essencial para otimizar a utilização eficiente deste software.

No R, uma função é geralmente representada da seguinte maneira:

No R, os argumentos podem ser variados tipos de objetos, incluindo dados, fórmulas e expressões, entre outros.

Alguns argumentos já vêm com valores pré-definidos, como é o caso do argumento z na função acima. Embora não seja obrigatório especificá-lo para executar a função, ele pode ser personalizado conforme a necessidade do usuário.

Existem também funções que não requerem argumentos, pois todos eles já estão pré-definidos.

Para exemplificar, consideremos a função mean, que calcula a média:

A representação da função mean é: mean(x, trim = 0, na.rm = FALSE).

Esta função é composta por três argumentos: x, trim e na.rm.

  • x é um vetor numérico contendo os valores.

  • trim é a fração de valores a serem excluídos em cada extremidade antes do cálculo da média. Pode variar de 0 a 0,5 e tem um valor padrão de 0.

  • na.rm é um argumento lógico que determina se os valores faltantes devem ser desconsiderados. Também possui um valor padrão.

Ao utilizar a função, é essencial fornecer o argumento x .

Os argumentos podem ser fornecidos em qualquer sequência, contanto que o nome do argumento seja especificado na chamada da função. Por exemplo, tanto mean(x = idade, na.rm = FALSE, trim = 0.2) quanto mean(na.rm = FALSE, trim = 0.2, x = idade) são aceitáveis, mas mean(FALSE, idade, 0) não é.

Geralmente, as funções estão contidas em pacotes no R, um aspecto que exploraremos mais detalhadamente posteriormente.

1.2 As janelas no RStudio

O RStudio é um ambiente de desenvolvimento integrado (IDE) projetado para o R. Ele oferece uma variedade de recursos que aumentam a produtividade e é compatível com todas as principais plataformas. Sua interface amigável torna o uso do R mais acessível e eficiente.

Na figura acima, é possível reorganizar essas áreas acessando o menu Tools \(\longrightarrow\) Global Options \(\longrightarrow\) Pane Layout.

As duas janelas localizadas à esquerda são as áreas de trabalho principais. A do canto superior, conhecida como Script, serve como a janela de edição, onde escrevemos nossos códigos. A do canto inferior, chamada de Console, é o ambiente do próprio R, onde os códigos são executados.

Recursos do RStudio na janela Script incluem:

  • Colorização de palavras e símbolos para facilitar a leitura do código.

  • Autocompletar nomes de funções e objetos à medida que digitamos no Script.

  • Breve descrição das funções em uso, exibindo seus principais argumentos.

Já as janelas localizadas à direita são auxiliares e altamente úteis. Algumas de suas principais funcionalidades incluem:

  • Listar todos os objetos criados durante a sessão de trabalho.

  • Exibir o histórico dos códigos executados.

  • Organizar os gráficos, permitindo o acesso a gráficos criados.

  • Fornecer documentação sobre funções e possibilitar a instalação de pacotes.

Aqui está uma breve descrição das funções das principais janelas:

  • Script: local onde escrevemos nossos códigos.

  • Console: local onde executamos os códigos e recebemos as saídas.

  • Environment: janela que lista todos os objetos criados na sessão de trabalho.

  • History: janela que registra um histórico dos comandos executados.

  • Files: mostra os arquivos no diretório de trabalho e permite a navegação entre diretórios.

  • Plots: janela onde os gráficos são apresentados.

  • Help: janela onde a documentação das funções é exibida.

  • Packages: local onde realizamos a instalação de pacotes no R.

1.3 Criando projetos no RStudio

De maneira simples, um projeto pode ser comparado a uma pasta em seu computador que contém todos os arquivos relacionados à análise que está sendo realizada. Essa funcionalidade é altamente benéfica para a organização e deve ser considerada uma prática recomendada para qualquer cientista de dados.

Para iniciar a criação de um projeto chamado de Análise1, siga estes passos: vá ao menu File \(\longrightarrow\) New Project. Em seguida, você pode optar por criar o projeto em um novo diretório específico para hospedar seu projeto ou usar um diretório existente. Para criar um novo diretório, clique em New Directory.

Na próxima janela, você terá a opção de escolher o tipo de projeto que deseja criar. Para prosseguir, clique em New Project.

A próxima janela permite que você escolha o nome da pasta que abrigará o projeto e o diretório onde ela será armazenada.

Após a criação do projeto, o RStudio indicará qual projeto está ativo, como ilustrado na figura abaixo.

1.4 Pedindo ajuda

Já enfatizamos que a linguagem R é altamente intuitiva, e encorajamos a utilizar o método de tentativa e erro!

No entanto, ao seguir essa abordagem, pode haver momentos em que você precise de assistência. Felizmente, a comunidade R é extremamente ativa e existem várias maneiras de obter ajuda.

Aqui estão os principais canais disponíveis:

1. Ajuda do R (R Help).

2. Pesquisas no Google.

3. Stack Overflow.

1.4.1 Help do R

O help do R fornece todas as informações necessárias para utilizar uma função específica. Ele consiste em uma documentação completa, incluindo descrição, argumentos, instruções de uso, saída e exemplos.

Para acessar a documentação de uma função, basta utilizar ?nome_da_funcao ou help(nome_da_funcao). Vamos agora acessar o help da função mean, que foi utilizada em 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)

1.4.2 Google

A comunidade de usuários do R é vasta e altamente ativa, constantemente gerando conteúdo e participando de discussões online. É natural que as pesquisas em inglês aumentem significativamente as chances de encontrar respostas, como ocorre em relação a outras linguagens. Uma dica valiosa é incluir a letra ‘r’ em suas buscas, o que pode ser extremamente útil para refinar os resultados e encontrar informações relacionadas ao R com maior eficiência.

sum(1,"a")
#Error in sum(1, "a") : invalid 'type' (character) of argument

Quando pesquisamos para solucionar um erro, é aconselhável incluir a letra ‘r’ na pesquisa do Google, como feito abaixo.

1.4.3 Stack Overflow

O Stack Overflow e o Stack Overflow em Português são plataformas de Perguntas e Respostas amplamente empregadas por diversas linguagens de programação, incluindo o R.

Se você não encontrar um problema semelhante ao seu (e sua solução) no site, o Stack Overflow oferece a oportunidade de criar sua própria pergunta.

1.5 Instalando pacotes

Um dos principais diferenciais do R reside na vasta quantidade de pacotes disponíveis, contendo diversas funções para análise de dados. A instalação de pacotes é uma atividade frequente na utilização do R.

A seguir, descrevemos as duas principais maneiras de instalar pacotes no R, classificadas por ordem de frequência:

1.5.1 Via CRAN

Você pode instalar pacotes que não estão em sua biblioteca utilizando a função install.packages(pkgs = 'nome_do_pacote'). Como exemplo, a seguir, instalaremos o pacote maptools.

#instalando o pacote maptools do CRAN
install.packages(pkgs = "maptools")

De forma alternativa, podemos usar o seguinte caminho: Packages \(\longrightarrow\) Install.

1.5.2 Via Github

Muitos usuários do R que criam pacotes costumam disponibilizar as versões mais recentes de seus pacotes no GitHub, incluindo aqueles que não estão no CRAN. Para instalar um pacote do GitHub, é necessário ter o pacote devtools instalado. O comando para realizar essa instalação é igualmente simples:

#instalando o pacote ghit do GITHUB
devtools::install_github("cloudyr/ghit")

Observação: Quando utilizamos a sintaxe PacoteA::funçãoZ, estamos assegurando que a função funçãoZ utilizada pertence necessariamente ao pacote PacoteA.

Apenas serão necessários o nome de usuário (username) e o nome do repositório (geralmente têm o mesmo nome do pacote). Como exemplo, o username foi cloudyr e o repositório foi ghit.

Se você não estiver familiarizado com o GitHub, não se preocupe! Os pacotes disponibilizados na plataforma geralmente incluem um arquivo README, cuja primeira instrução trata da instalação.

1.6 Universo tidyverse

Nós, interessados em analisar dados, precisamos falar sobre o tidyverse!

O tidyverse é um conjunto de pacotes R que proporcionam ao cientista de dados uma abordagem unificada e eficiente para a realização de tarefas comuns. Quando falamos de eficiência, estamos nos referindo à rapidez na resolução de problemas, não à velocidade de execução de algoritmos. Os pacotes que fazem parte deste conjunto compartilham uma filosofia, gramática e estrutura de dados, o que promove uma integração harmoniosa entre eles.

Se você está se familiarizando com o tidyverse, o trabalho proposto por Wickham and Grolemund (2017) deve ser consultado. O livro de Garrett Grolemund e Hadley Wickham, é a melhor fonte para compreender a filosofia completa e como todas as peças se encaixam.

O tidyverse é considerado um universo à parte dentro do R, principalmente devido à consistência das suas ferramentas e à excelente interoperabilidade entre elas.

Os princípios fundamentais do tidyverse são os seguintes:

1.6.1 Eficiência algorítmica vs eficiência de trabalho

Estamos enfatizando que o tempo que um cientista de dados dedica à concepção de uma operação é mais valioso do que o tempo que o computador gasta para executar um cálculo.

1.6.2 Tidy data

É um princípio de organização de dados que, frequentemente, soluciona mais de 80% dos problemas reais. O objetivo da organização dos dados é transformar a base de dados até que ela esteja em um formato tidy. Uma base de dados é considerada tidy quando cada observação é representada em uma linha, cada variável em uma coluna e cada dado é alocado em uma célula específica da base.

1.6.3 Utilização do operador |> (pipe)

Operador que revolucionou/facilitou a lógica de programar no R.

1.6.4 Aparato mnemônico

Pacotes baseados em teoria e API consistentes.

1.6.5 Minimalidade e funções puras

Funções sem efeitos colaterais interagem com o ambiente através de entradas (inputs) e saídas (outputs), alinhando-se harmoniosamente com o princípio do pipe.

1.6.6 Workflow para ciência de dados