R e RStudio: começando do zero

Ronaldo Baltar
Data Hackers
Published in
12 min readFeb 18, 2021

Um ambiente computacional para análise de dados

Há vários programas de computador utilizados para a pesquisa e a análise de dados. Uma característica que os diferencia seria adaptabilidade e robustez dos métodos analíticos disponíveis. Outro fator é a existência de uma comunidade ativa de usuários em torno do software.

Embora existam muitos parâmetros técnicos comparativos, a escolha sobre qual usar acaba sendo bastante subjetiva. A preferência por um software geralmente está mais associada à difusão na comunidade de pesquisa da qual o usuário faz parte. No fundo trata-se de uma escolha que leva mais em conta o compartilhamento das experiências, do que desempenho do programa. A formação da comunidade de usuários acaba sendo também um fator de empregabilidade, que reforça o contínuo aperfeiçoamento dos usuários.

O R apresenta essas características, é um ambiente computacional tecnicamente amadurecido e eficiente, possui uma grande comunidade de usuários e tem sido cada vez mais adotado em empresas e órgão governamentais, indo além da academia como linguagem básica para o tratamento analítico de dados.

O R pode ser integrado com vários outros programas, reforçando o seu uso amplo, seja como aplicações científicas, inteligência em negócios (business intelligence), bigdata e análise de dados com aplicações de aprendizagem de máquina (machine learning).

R como linguagem de programação

Console do R

O programa, que nasceu em 1993 da iniciativa de Ross Ihaka e Robert Gentleman, pesquisadores do departamento de estatística da Universidade de Auckland na Nova Zelândia, tornou-se mais do que uma linguagem de programação. Trata-se de um ambiente computacional completo, composto por várias bibliotecas (ou pacotes), que cobrem uma ampla variedade de soluções analíticas. O software é distribuído como código fonte aberto (open source) e conta com abundante documentação para auxiliar na resolução de quase todos os tipos de dúvida.

A linguagem R, tal como concebida por Ihaka e Gentleman, é uma junção de duas outras linguagens paradigmáticas na análise de dados nos anos 70 e 80: Scheme, criada em 1970 por Guy L. Steele e Gerald Jay Sussman; e a linguagem S, desenvolvida por John M. Chambers, Richard A. Becker e Allan R. Wills.

A linguagem R, segundo seus criadores, começou com a elaboração de um interpretador baseado nas características funcionais do Scheme, que é um “dialeto” LISP. Após estabelecerem as bases do R, fizeram modificações para se aproximá-la da linguagem S, que era efetivamente voltada para a análise estatística, com a estrutura básica de dados vetorizada. Essa característica pode fazer com que o R pareça um pouco estranho de início, em relação às linguagens mais genéricas como Python ou Java. Uma vez iniciada a aprendizagem em R, fica evidente que sua especialização torna mais ágil a programação aplicada à análise de dados.

Ainda assim, não há como se estabelecer um único critério que defina qual a melhor opção entre os ambientes computacionais para análise de dados. Todos têm vantagens e desvantagens em um ou outro aspecto. A linguagem Python, por exemplo, tem se difundido entre os desenvolvedores e empresas na área de data science e machine learning nos últimos anos. A linguagem Julia tem sido usada em ambientes computacionais distribuídos e de alto desempenho.

Mesmo assim, programas e pacotes em R continuam se multiplicando em várias áreas do conhecimento, tendo se tornado lingua franca em publicações acadêmicas e pesquisas com dados oficiais e empresariais. Além disso, o R pode ser integrado com várias outras linguagens e programas, incluindo Python e Julia, aproveitando o potencial de cada solução para o melhor resultado de pesquisa.

Para a formação de pesquisadores em análise de dados pode-se ainda destacar os seguintes pontos que favorecem o aprendizado da linguagem R:

• inserção em uma comunidade internacional de usuários bastante ativa e com ampla variedade de interesses;

• incentivo para desenvolvimento de códigos com padrões uma linguagem de programação científica;

• disseminação dos resultados com padrão de reprodutibilidade através de relatórios dinâmicos com o uso de Rmarkdown, no mesmo modelo do jupyter notebook em Python;

• aprofundamento no uso de planilhas, com como Excel ou Open Office Calc, que combinadas com R, permitem mais flexibilidade de análises e rigor nos resultados;

• possibilidade de se trabalhar com diferentes tipos de formatos de dados (SPSS, CSV, TXT, PDF, XLXS) e os mais diferentes Gerenciadores de banco de dados;

• exploração de análise visual com gráficos variados e de alta qualidade.

A central de gerenciamento de pacotes CRAN faz com que a instalação e atualização do R e de seus mais de 12 mil pacotes seja feita de forma fácil e organizada, sem confusão para o usuário. Como resultado, o R é constantemente atualizado. Todas as funções e pacotes em R são muito bem documentados e há uma predisposição da comunidade em esclarecer dúvidas em vários sites de referência como Stack Overflow e outros fóruns de acesso aberto.

Existem muitos livros e cursos disponíveis para ensinar R, muitos dos quais gratuitos e em português, que cobrem temas dos mais iniciais aos mais avançados. Para os iniciantes, um bom começo é o livro de Jackson Alves de Aquino da UESC (disponível em pdf ) e a apostila online Estatística Computacional com R de vários autores do Laboratório de Estatística e Geoinformação (LEG) da UFPR.

Diferentes distribuições do R

O R padrão

Quando o R ganhou notoriedade, primeiramente entre usuários da comunidade acadêmica e depois nas empresas inovadoras em data analysis, foi criada a The R Foundation, que faz parte da Free Software Foundation’s GNU project. Formou-se um grupo de desenvolvedores que cuidam do núcleo básico do R, chamado de R Development Core Team. Parte do sucesso do R se deve ao fato de seu modelo de desenvolvimento ter se baseado em contribuições de pessoas e grupos de pesquisa de várias partes do mundo. Enquanto o R Development Core Team cuida das atualizações da engine central e alguns pacotes básicos, outros colaboradores, de forma descentralizada, acrescentam novidades ao R através de inúmeros pacotes, englobando quase todas as áreas de conhecimento. Estes pacotes (ou bibliotecas) são centralizados em um repositório, gerenciado pela R Foundation, chamado Comprehensive R Archive Network (CRAN): https://www.r-project.org/

Instalando o R padrão CRAN

Para a instalação do R padrão CRAN, baixe o arquivo correspondente ao sistema operacional (Windows, MacOS, Linux): https://cran.r-project.org

Usuários com Linux Debian ou Ubuntu, podem instalar o R digitando o comando:

 sudo apt-get install r-base

Após concluída a instalação, o R pode ser iniciado digitando-se o comando Rgui.exe ou clicando no ícone R que aparecerá na área de desktop do computador.

Microsoft R

Além da versão padrão mantida pela The R Foundation, disponível no CRAN, existe outra distribuição do R, mantida pela Microsoft, que pode ser acessada no repositório MRAN: https://mran.microsoft.com/

Visando o potencial de crescimento do R para análise de dados, no ano de 2007 foi criada nos Estados Unidos a empresa Revolution Computing, que pouco tempo depois foi renomeada para (R)evolution Analytics. O objetivo era desenvolver uma versão do R, a partir do código base, mas com recursos para análise eficiente de grandes quantidades de dados.

Para isso, foi criado o pacote ScaleR, que usa um recurso de armazenamento de dados muito eficiente, chamado de XDF (um formato XML compactado como arquivo binário, que armazena os dados em blocos para rápida recuperação). O formato é uma adaptação da solução desenvolvida pela agência espacial dos Estados Unidos — NASA, para análise de dados científicos. Essa versão do R também dispunha de recursos já otimizados para explorar o processamento paralelo dos computadores, que estavam sendo vendidos em maiores quantidades com multiprocessadores.

Com o potencial demonstrado pelos centros de pesquisa e empresas norte-americanas, os fundadores da Revolution Analytics chamaram, em 2008, o cientista social Norman Nie, criador do SPSS, para ser o novo diretor da companhia. O interesse comercial pelo uso da versão R da Revolution Analytics chamou a atenção da Microsoft. A empresa já vinha desenvolvendo um conjunto de ferramentas para se expandir no mercado de bigdata com recursos de inteligência artificial (IA), computação distribuída e aprendizagem de máquina (machine learning). Dentro deste projeto, no ano de 2015, a Microsoft adquiriu a Revolution Analytics e começou a integração dos pacotes RevoscaleR ao seu conjunto de soluções de alto desempenho para empresas e pesquisa acadêmica.

A Microsfot mantém três versões do R. A versão básica do programa, chamada de Microsoft R Open (MRO), é uma modificação do R padrão, distribuído pela Fundação R. Entre as alterações acrescidas à versão MRO está a inclusão da biblioteca Intel MKL (Math Kernel Library) para otimização de cálculo. Também, introduz uso nativo de processamento paralelo (multi-threaded). A versão Microsoft Cliente de Ciência dos Dados (Microsoft R Client) é uma adaptação da versão MRO para uso com as ferramentas de bigdata e recursos de aprendizagem de máquina (machine learning), mas com limitações em relação a versão Server. A terceira é a versão comercial Microsoft Machine Learning Server, desenvolvida para rodar em ambientes com capacidade de processamento distribuído para grande volume de dados sem limitações.

Embora sejam em boa parte compatíveis com o R open source, as distribuições MRO e Microsoft R Client não acompanham as atualizações da Fundação R.

Instalando o Microsoft R

Microsoft R Open (MRO), pode ser baixado gratuitamente em: https://mran.microsoft.com/download

Microsoft Cliente de Ciência dos Dados (Microsoft R Client), pode ser baixado gratuitamente em: https://aka.ms/rclient/download

Microsoft Machine Learning Server, solução comercial: https://azure.microsoft.com/

A distribuição Microsoft (MRAN) só está disponível para Windows e Linux 64bits.

pqR — para quem gosta de experimentar

Uma versão não muito conhecida do R foi modificada por Radford M. Neal do Departamento de Ciência da Computação da Universidade de Toronto. Chamada de pqR — a pretty quick version of R, esta distribuição, disponível como open source, promete ser mais rápida do que o R padrão, além de trazer o processamento paralelo incorporado em algumas funções básicas. A instalação do pqR requer que o código fonte, depois de baixado, seja compilado na máquina do usuário. Nem todos os pacotes disponíveis na CRAN são testados com o pqR. O código fonte está disponível no GitHub do autor. Para quem gosta de experimentos, vale a pena dar uma olhada. Deve-se ter em conta que as modificações introduzidas pela distribuição pqR foram feitas sobre a versão base do R-2.15.0, que foi lançada lá em 2012.

Rstudio IDE

O RStudio é um ambiente de desenvolvimento integrado (Integreted Develpment Environment — IDE) — desenvolvido por Joseph J. Allaire em 2009 e lançado a público em 2011. O programa oferece um amplo conjunto de ferramentas para facilitar o trabalho com o código e o gerenciamento de projetos em R e de outras linguagens, como Python, C++, Stan e outras.

Com o crescimento do uso R, foi criada a empresa RStudio Inc para investir e gerenciar o desenvolvimento de soluções comerciais, sem deixar o desenvolvimento da versão open source. A empresa, posteriormente, passou a se chamar RStudio PBC (Public Benefit Corporation).

Além do RStudio, vários pacotes populares usados em R foram criados pela equipe de desenvolvedores da empresa, entre eles Hadley Wickham (tidyverse, ggplot2, dplyr, entre outros). O criador do RStudio, J. Allaire, também é autor do pacote Rearticulate, que faz a integração entre R e Python e a equipe mantém outros pacotes que se integram ao TensorFlow, Sparkly, Stan e outras ferramentas para análise e predição de dados.

A motivação para o uso de uma IDE como o RStudio vem do fato de que a interface gráfica padrão (Graphical User Interface — GUI) do R foi criada para ser utilizada em modo interativo. Há um prompt (na linha identificada com o sinal >) para se digitar os comandos.

Console do R — os comandos são interativos.

O processador R executa as instruções e mostra o resultado nas linhas seguintes. Essa forma de uso interativo é bem útil para aplicações rápidas, mas torna-se um problema para o gerenciamento de códigos mais detalhados.

O RStudio foi criado para suprir as limitações da GUI padrão e permitir a exploração de todo o potencial de programação do R. Pode ser personalizado de diferentes maneiras, adaptando-se e às preferências visuais e ao fluxo de trabalho dos usuários. Como ambiente de desenvolvimento integrado, o RStudio é uma ferramenta completa para auxiliar a criação de projetos e exploração de ideias.

Interface do RStudio
Interface do RStudio com diferentes áreas para código, saída do console, variáveis de ambiente e gráficos

A interface do RStudio, de início se apresenta com quatro grandes áreas. A primeira área para os códigos escritos (scripts R, notebooks, arquivos Rmardown e outros tipos de arquivo texto). Na segunda parte estão dispostas as janelas de saída, como o console do R e o terminal do sistema operacional. A terceira parte está a área de ambiente da seção em execução (com a lista de variáveis, bases de dados e objetos em uso), o histórico de comando e outras funções. A quarte parte contém as abas com lista de bibliotecas instaladas, a saída de gráficos e os documentos de ajuda. O RStudio é flexível e a disposição de todos esses painéis e abas podem ser reorganizadas de acordo com a preferência do usuário.

Embora possa parecer estranho de início, para quem está acostumado com os menus do tipo “apontar e clicar”, um ambiente IDE, permite explorar muito mais a fundo os recursos computacionais disponíveis. Além disso, conta com uma outra vantagem indispensável: o registro de todo os procedimentos para reprodutibilidade do trabalho realizado.

Usuários do Excel ou SPSS, por exemplo, embora tenham a possibilidade de desenvolver rotinas em códigos de programação ou scripts, na grande maioria das vezes usam os recursos dos programas por meio de menus.

Estas interfaces gráficas do tipo “apontar e clicar” reduzem o esforço de memorização dos comandos. Contudo, limitam o uso dos recursos às opções predeterminadas nas guias. Além disso, pode-se facilmente perder a memória da sequência de passos analíticos realizados. Com o script, cada etapa fica registrada tanto nos comandos, quanto nos comentários inseridos.

Para a apresentação de uma pesquisa, não apenas dos resultados são importantes. A revisão dos códigos disponíveis é fundamental para a compreensão das conclusões e interpretações resultantes, principalmente quando se trabalha em equipe. Um ambiente IDE, como o RStudio, é indispensável para aprimorar o tratamento dos códigos, pois fortalece a depuração, a colaboração e a transparência dos resultados.

Instalando RStudio

RStudio possui duas versões: RStudio desktop e RStudio Server (servidor). Ambas são distribuídas tanto com licença gratuita (open source) ou sob licença comercial. A versão desktop foi desenvolvida para uso em computadores individuais com acesso local. Pode ser instalada em equipamentos com os sistemas operacionais Linux, Mac ou Windows.

A versão RStudio Server só pode ser instalada em computadores Linux com distribuições Debian/Ubuntu, Red Hat/CentOS ou SUSE. Os clientes do RStudio Server acessam o servidor de qualquer equipamento conectado por um navegador da Internet.

O arquivo de instalação do RStudio pode ser baixado no seguinte endereço:

https://rstudio.com/products/rstudio/download/

A partir da versão 1.2, o RStudio somente aceita instalação em computadores de 64-bit. Antes da instalação do RStudio, deve-se certificar de o R já tenha sido instalado corretamente.

Outras opções de interface para o R

O RStudio não é o único ambiente IDE disponível para o R. São vários, podemos descatar alguns como o Microsoft Visual Studio, StatET (Eclipse), ESS (Emacs Speaks Statistics), Tinn-R (desenvolvido por José Cláudio Faria/UESC), entre outros. Há ainda o Rattle, um ambiente visual integrado ao R com ênfase em data mining.

Para quem prefere uma interface gráfica no estilo “apontar e clicar” (como o SPSS), há várias opções para o R, como o BlueSky Statistics, Deducer, RKWard. Entre as opções “apontar e clicar”, uma biblioteca bastante utilizada é o Rcommander (http://rcommander.com/), criada pelo cientista social canadense Jhon Fox da McMaster University.

O Rcommander possui vários complementos, está traduzido para o português e pode ser usado em combinação com RStudio.

Para instalar o Rcommander, digite o comando no console do R ou do RStudio,:

 install.packages(“Rcmdr”, dependencies=TRUE)

Após instalado, o Rcommander pode ser executado com o comando:

 library(“Rcmdr”)
Exemplo de Menu do Rcommander
Exemplo de Menu do Rcommander — seleção de variáveis para teste de Qui-quadrado

O Rcommander é uma excelente GUI para quem está iniciando a aprendizagem de estatística com o R.

Recapitulando

Você viu que o R surgiu como uma linguagem de computação especializada em estatística e análise de dados. A comunidade de usuários desenvolve continuamente uma variedade enorme de pacotes para responder às necessidades de quase todas as áreas de pesquisa, enquanto os desenvolvedores do Core Team mantêm a integridade e a robustez do núcleo central do software.

O RStudio complementa o R como um ambiente integrado para a criação, depuração e análise de programas. Possui vários recursos para aumentar a produtividade e reprodutibilidade dos resultados em códigos escritos em R (também Python, C++, Stan e outros).

  • Para instalar o R Padrão, baixe a última versão em: The Comprehensive R Archive Network (r-project.org)
  • Para instalar o RStudio, baixe a última versão em: https://rstudio.com/products/rstudio
  • Se tiver preferência por menus do tipo “apontar e clicar” ou se estiver dando os seus primeiros passos no estudo de estatística com o R, depois de iniciar o RStudio, instale também o Rcommander com o comando install.packages(“Rcmdr”, dependencies=TRUE).

Ronaldo Baltar coordena o Projeto Infosoc (informática para análise de dados sociais) na Universidade Estadual de Londrina (UEL). Este texto foi escrito em colaboração com Cláudia Siqueira Baltar, coordenadora do Observatório de Populações e Políticas Públicas — UEL.

--

--

Ronaldo Baltar
Data Hackers

Professor do Departamento de Ciências Sociais, CCH - Universidade Estadual de Londrina, coord. do projeto Infosoc - informática para análise de dados sociais