Capítulo 1 Introdução

Na era digital, informação é abundante e de fácil acesso. Nota-se, em todas as áreas de conhecimento, um crescimento substancial no registro de eventos em diferentes bancos de dados. A vida pessoal e profissional de qualquer cidadão é facilmente documentada no mundo digital. A cada segundo, volumosos bancos de dados de diferentes empresas e organizações são alimentados com novas informações. Essa tendência impõe uma alteração significativa na forma como organizações utilizam a análise de dados na tomada de decisões inteligentes. Sem dúvida, o período atual é bastante prolífico para profissionais com conhecimento e experiência na utilização das ferramentas corretas para a análise computacional de dados.

Em particular, a área de Economia e Finanças oferece grande variedade de informações disponíveis ao público. Instituições de pesquisa como IBGE, IPEA, Bancos Centrais, bolsas de valores e tantas outras, disponibilizam seus dados publicamente, seja por obrigatoriedade legal, seja para o próprio fomento da atividade de pesquisa. Há, ainda, outro fator importante que tem alavancado o mercado de análise de dados: o avanço tecnológico, acompanhado pela diminuição do custo computacional. Hoje em dia, computadores domésticos já possuem a capacidade de processar quantidades volumosas de dados em pouco tempo. Essa evolução do aparato computacional ocorreu mais rapidamente do que o acréscimo de complexidade das metodologias utilizadas, resultando em uma diminuição significativa do tempo necessário para a execução de uma pesquisa.

Os métodos de processamento também avançaram em termos de complexidade. No passado, uma simples planilha eletrônica poderia dar conta do trabalho. Hoje, a situação é bem diferente. Para áreas de conhecimento com aplicações práticas, como Economia e Finanças, é esperado que o aluno de pós-graduação tenha aprendido, no mínimo, uma linguagem de programação – como requerimento básico para a execução de sua pesquisa.

É nesse ambiente atual que se destaca o papel do R, uma linguagem de programação voltada para a resolução de problemas computacionais envolvendo análise, processamento, visualização e modelagem de dados. Nas próximas seções, explicarei o que é o R e quais são suas vantagens frente a outras alternativas.

1.1 O que é o R

O R é uma linguagem de programação voltada para a resolução de problemas estatísticos e para a visualização gráfica de dados. O código base do R foi inicialmente criado no laboratório da Bell/AT&T por John Chambers e seus colegas, com base na linguagem S. Esse código foi reaproveitado por dois acadêmicos, Ross Ihaka e Robert Gentleman, resultando na plataforma de programação que temos hoje. Para os curiosos, o nome R foi escolhido devido ao compartilhamento da primeira letra do nome de seus criadores.

Hoje, R é sinônimo de programação voltada à análise de dados, com uma larga base de usuários e funções bem estabelecidas. É muito provável que pesquisadores de áreas diversas, desde Economia até Biologia, ou mesmo Música, encontrem no R uma quantidade significativa de códigos que facilitem suas análises. No campo empresarial, grandes empresas como Google e Microsoft já o adotaram como a linguagem interna para a análise de dados. O R é atualmente mantido pelo R Foundation e o R Consortium, um esforço coletivo para financiar projetos de extensão da linguagem.

E o mais importante: o R é totalmente livre e disponível em vários sistemas operacionais. Seja você um usuário do Windows, do Linux/UNIX ou do Mac-OS, existe uma instalação do R para a sua plataforma, e os seus códigos devem rodar entre uma e outra com mínimas alterações.

1.2 Por que Escolher o R

O processo de aprendizado de uma nova linguagem de programação exige muito tempo e esforço. Portanto, é importante entender as razões por trás dessa escolha. Possivelmente você esteja se perguntando por que deve optar pelo R e investir tempo em sua aprendizagem, ao invés de escolher uma outra linguagem.

Em primeiro lugar, o R é uma plataforma madura, estável, continuamente suportada e intensamente utilizada na indústria. Ao escolher o R, você terá a bagagem computacional necessária não somente para uma carreira acadêmica em pesquisa científica, mas também para o trabalho em organizações privadas. Nesse sentido, com a escolha de outra linguagem de programação menos popular ou proprietária (comercial), é provável que tal linguagem não seja utilizada em um ambiente empresarial e isso pode limitar as suas oportunidades futuras de carreira. O conhecimento do R certamente aumenta a sua atratividade como um profissional em Finanças e Economia. Além disso, o R é continuamente suportado pela comunidade, com rápida correção de bugs e adição de novas funcionalidades.

Aprender a linguagem do R é fácil. A experiência que tenho ensinando o R em sala de aula me permite afirmar que os alunos, mesmo aqueles sem experiência em programação, apresentam facilidade em aprender a linguagem e em utilizá-la para criar seus próprios códigos de pesquisa. A linguagem é intuitiva e certas normas e funções podem ser estendidas para diferentes casos. Após entender como o programa funciona, fica fácil descobrir novas funcionalidades partindo de uma lógica anterior. Essa notação compartilhada entre procedimentos facilita o aprendizado.

A interface do R e RStudio torna o uso da ferramenta bastante produtivo. A interface gráfica disponibilizada pelo RStudio facilita o uso do software, assim como a produtividade do usuário. Utilizando o ambiente de trabalho do R e RStudio, têm-se a disposição diversas ferramentas que facilitam e estendem o uso da plataforma.

Os pacotes do R permitem as mais diversas funcionalidades. Logo veremos que o R permite o uso de código de outros usuários, os quais podem ser localmente instalados na forma de um pacote com um simples comando. Esses estendem a linguagem básica do R e possibilitam as mais diversas funcionalidades. Podes, por exemplo, utilizar o R para escrever e publicar um livro, criar provas objetivas com conteúdo dinâmico, contar piadas e poemas (é sério!), mandar emails, acessar e coletar dados da internet, entre diversas outras funcionalidades.

O R tem compatibilidade com diferentes linguagens e sistemas operacionais. Se, por algum motivo, o usuário precisar utilizar código de outra linguagem de programação tal como C++, Python, Julia, é fácil integrar a mesma dentro de um programa do R. Diversos pacotes estão disponíveis para facilitar esse processo. Portanto, o usuário nunca fica restrito a uma única linguagem e tem alta flexibilidade para escolher as suas ferramentas.

O R é totalmente gratuito! O programa e todos os seus pacotes são completamente livres, não tendo custo algum de licença e distribuição. Portanto, você pode utilizá-lo e modificá-lo livremente no seu trabalho ou computador pessoal. Essa é uma razão muito forte para a adoção da linguagem em um ambiente empresarial, onde a obtenção de licenças individuais e coletivas de outros softwares comerciais pode ter um alto custo financeiro.

1.3 Usos do R

O R é uma linguagem de programação completa e qualquer problema computacional pode ser resolvido com base nela. Dada a adoção do R por diferentes áreas de conhecimento, a lista de possibilidades é extensa. Para o caso de Finanças e Economia, destaco abaixo possíveis utilizações do programa:

  • Importação, exportação, tratamento e armazenamento de dados financeiros e econômicos com base em arquivos locais ou da internet;
  • Criação de rotinas para o cálculo e a administração do risco de uma carteira de investimento;
  • Desenvolvimento de rotinas para a administração e execução de ordens financeiras no mercado de capitais;
  • Criação de ferramentas para controle, avaliação e divulgação de índices econômicos sobre um país ou região;
  • Execução de diversas possibilidades de pesquisa empírica através da estimação de modelos econométricos e testes de hipóteses;
  • Criação de websites dinâmicos com o pacote Shiny, possibilitando que qualquer pessoa no mundo utilize uma ferramenta criada por você;
  • Organização de um processo automatizado de criação e divulgação de relatórios técnicos com o pacote knitr e a tecnologia RMarkdown.

Além dos usos destacados anteriormente, o acesso público a pacotes desenvolvidos por usuários expande ainda mais essas funcionalidades. O site da CRAN (Comprehensive R Archive Network) oferece um Task Views do software para o tópico de Finanças. No link é possível encontrar os principais pacotes disponíveis para realizar algum tipo de operação na área de Finanças e Economia. Isso inclui a importação de dados financeiros da internet, a estimação de um modelo econométrico específico, cálculos de diferentes estimativas de risco, entre várias outras possibilidades. A leitura dessa página e o conhecimento desses pacotes são essenciais para aqueles que pretendem trabalhar com Finanças e Economia. Vale destacar, porém, que essa lista apresenta apenas os principais itens. A lista completa de pacotes é muito maior do que o apresentado no Task Views. O link para o site do CRAN está disponibilizado na página do livro.

1.4 Como Instalar o R

O R é instalado no seu sistema operacional como qualquer outro programa. A maneira mais direta e funcional de instalá-lo é ir ao website do R em https://www.r-project.org/ e clicar no link CRAN do painel Download, conforme mostrado na figura a seguir.

Página inicial para o download do R

Figura 1.1: Página inicial para o download do R

A próxima tela apresenta a escolha do espelho para baixar os arquivos de instalação. O repositório do CRAN é espelhado em diversas partes do mundo, permitindo acesso rápido para os usuários. Para a grande maioria dos leitores deste livro, essa localidade deve ser o Brasil ou Portugal. Portanto, você pode escolher um dos links da instituição mais próxima, tal como o da UFPR (Universidade Federal do Paraná). Em caso de dúvida, escolha o repositório do RStudio (veja Figura ), o qual automaticamente direciona para o local mais próximo.

Tela com a escolha do espelho para o download

Figura 1.2: Tela com a escolha do espelho para o download

O próximo passo é selecionar o sistema operacional do computador. Devido à maior popularidade da plataforma Windows, a partir de agora daremos enfoque à instalação do R nesse sistema. As instruções de instalação nos demais sistemas operacionais podem ser facilmente encontradas na internet. Destaca-se que, independente da plataforma, o modo de uso do R é o mesmo. Existem, porém, algumas exceções, principalmente quando o R interage com o sistema de arquivos. Essas exceções serão destacadas no decorrer do livro. Assim, mesmo que você esteja utilizando Linux ou Mac, poderá tirar proveito do material aqui apresentado.

Tela com a escolha do sistema operacional

Figura 1.3: Tela com a escolha do sistema operacional

Após clicar no link Download R for Windows, a próxima tela irá mostrar as seguintes opções de download: base, contrib, old.contrib e RTools. Dentre as opções de download, a primeira (base) deve ser selecionada. O link acessa a instalação básica do R para Windows. Caso o usuário tenha interesse em criar e distribuir os seus próprios pacotes de R, deve ser instalado também o programa RTools. Para a maioria dos usuários, contudo, esse não deve ser o caso e, portanto, sugiro ignorar esse programa por enquanto.

Tela com opções de instalação

Figura 1.4: Tela com opções de instalação

Após clicar no link base, a próxima tela mostrará o link para o download do arquivo de instalação do R no Windows.

Tela para o download do R

Figura 1.5: Tela para o download do R

Após baixar o arquivo, abra-o e siga os passos da tela de instalação do R. Escolha a língua inglesa em todas etapas do processo. O uso da língua inglessa não é acidental. Este é a melhor forma, mesmo para iniciantes, de se aprender a usar o R. É possível instalar uma versão em português porém isso limita o potencial da ferramenta. Caso não for fluente em inglês, não se preocupe, o vocabulário necessário é básico. Neste momento, nenhuma outra configuração especial é necessária. Sugiro manter todas as escolhas padrão selecionadas e simplesmente ir aceitando as telas de diálogo. Após a instalação do R, partimos para a instalação do RStudio.

1.5 Instalando o RStudio

A instalação do R inclui a sua própria interface gráfica, um programa que facilita a edição e execução de nossos scripts. Essa, porém, possui várias limitações. O RStudio é um software que torna o uso e o visual do R muito mais prático e eficiente. Uma forma de entender essa relação é com uma analogia com carros. Enquanto o R é o motor da linguagem de programação, o RStudio é a carroceria e o painel de instrumentos, os quais melhoram significativamente a experiência de uso. Além de apresentar um visual mais atrativo, o RStudio também é acrescido de várias funcionalidades que facilitam a vida do usuário, possibilitando a construção de projetos e pacotes do próprio R, a criação de documentos dinâmicos (Sweave/knitr) e a interface com edição de textos em LaTeX, entre várias outras. Assim como o R, o RStudio também é gratuito e pode ser utilizado no ambiente empresarial.

A instalação do RStudio é mais simples do que a do R. Os arquivos estão disponíveis no endereço disponibilizado no site do livro. Após acessar a página, clique em Download RStudio e depois em Download Rstudio Desktop. Logo após, basta selecionar o arquivo relativo ao sistema operacional em que você irá trabalhar. Provavelmente, essa opção será Windows Vista/7/8/10. Note que, assim como o R, o RStudio também está disponível para diferentes plataformas.

Destaco que o uso do RStudio não é essencial para desenvolver programas no R. Outros softwares de interface estão disponíveis e podem ser utilizados. Porém, dada minha experiência atual, o RStudio é o programa de interface que oferece a maior variedade de funcionalidades para essa linguagem, além de ser amplamente utilizado, o que justifica a sua escolha.

1.6 Uso do tidyverse

Logo veremos que o R possui um sistema de pacotes que estendem as funcionalidade do programa. Dentre essas, existe um grupo de pacotes desenvolvidos por Hadley Wickham e diversos outros autores que representam o tidyverse. As funções desses pacotes substituem as funções nativas do R em procedimentos comuns, tal como leitura de arquivos e manipulação de objetos. A inovação é que as funções seguem uma filosofia chamada tidydata (Wickham 2014b), sendo, muitas vezes, mais fáceis de usar do que as funções nativas.

A minha experiência com o tidyverse é bastante positiva. Prevejo que o uso do tidyverse irá se solidificar ainda mais no futuro. Devido a isso, neste livro irei dar prioridade para as funções e pacotes do tidyverse em relação a funções nativas do R. Irei, porém, sempre destacar as funções equivalentes no sistema nativo. Isto é importante pois nunca se sabe quais funções serão encontradas no código de outras pessoas. Essas serão sinalizadas com o prefixo base::, como em base::paste. Explicando melhor, lê-se o código em base::paste como função paste do pacote base. Essa notação não é acidental. Logo veremos como ela se encaixa na linguagem do R.

1.7 Recursos na Internet

A comunidade R é viva e envolvente. Na internet é possível encontrar uma diversidade de material sobre o uso do R. Diversos usuários, assim como o próprio autor do livro, publicam material sobre o uso R em seus blogs. Isso inclui anúncios de pacotes, publicações sobre análise de dados na vida real, curiosidades, novidades e tutoriais. R-Bloggers é um site que agrega esses blogs em um único local, tornando mais fácil para qualquer um acessar e participar. O conteúdo do R-Bloggers, porém, é todo em inglês.

Recentemente, uma versão local de agregamento de blogs sobre R por autores Brasileiros e com conteúdo em português foi organizada por Daniel Falbel e Julio Trecenti. O acesso é disponível no site https://brbloggers.com.br/. Outra fonte de informações é a lista de blogs compilada e organizada por Marcos Vital em https://marcosvital.github.io/blogs-de-R-no-Brasil/. Eu recomendo a inscrição no feed do R-Bloggers e BR-Bloggers. Não só você será informado sobre o que está acontecendo no universo do R, mas também aprenderá muito lendo artigos e os códigos de outros usuários.

Aprender e usar R pode ser uma experiência social. Várias conferências e grupos de usuários estão disponíveis em muitos países, incluindo o Brasil. O grupo R Brasil - Programadores no Facebook é bastante ativo, com um grande número de participantes. Recomendo fortemente a inscrição neste grupo para acompanhar e discutir questões relacionadas ao uso do R. Diversas conferências locais sobre o R são divulgadas nesse grupo.

1.8 Organização e Material do Livro

Este livro tem uma abordagem prática no uso do R e será acompanhado por uma série de códigos que irão exemplificar e mostrar para o leitor as funcionalidades do programa. Para tirar o máximo de proveito do material, sugiro que você primeiro busque entender o código mostrado e, somente então, tente utilizá-lo em seu próprio computador. O índice remissivo disponibilizado no final do livro serve como uma mapa de uso das funções. Toda vez que uma função é chamada no livro, um registro do número da página é criado no índice remissivo. Esse indica, também, o pacote que a função pertence. Podes utilizar este mapa para localizar o uso de qualquer função ou pacote no decorrer do livro.

Aprender a programar em uma nova linguagem é como aprender uma língua estrangeira: o uso no dia-a-dia é de extrema importância para criar fluência. Sempre que possível, sugiro que o leitor teste o código no seu computador e brinque com o mesmo, modificando os exemplos dados e verificando o efeito das modificações nas saídas do programa. Cada capítulo apresenta no seu final uma lista de exercícios, incluindo questões do tipo desafio. Podes testar as suas habilidades de programação resolvendo as atividades propostas. Vale relembrar que todo o código deste livro está disponibilizado na internet. Não precisas, portanto, escrever o código diretamente do livro. Podes copiar e colar do código fonte disponibilizado no site.

No decorrer da obra, toda demonstração de código terá duas partes: o código em si e sua saída do R. Essa saída nada mais é do que o resultado dos comandos na tela do programa. Todas as entradas e saídas de código serão sinalizadas no texto com um formato especial. Veja o exemplo a seguir:

# create a list
object.x <- list(var1 = 'abc', var2 = 1:5)

# print to prompt
print(object.x)
## $var1
## [1] "abc"
## 
## $var2
## [1] 1 2 3 4 5

No caso anterior, os textos object.x <- list(var1 = 'abc', var2 = 1:5) e print(object.x) são os códigos de entrada. A saída do programa é a apresentação na tela dos elementos de object.x, com o símbolo antecessor ##. Por enquanto não se preocupe em entender e reproduzir o código utilizado acima. Iremos tratar disso no próximo capítulo.

Note que faço uso da língua inglesa no código, tanto para a nomeação de objetos quanto para os comentários. Isso não é acidental. O uso da língua inglesa facilita o desenvolvimento de código ao evitar caracteres latinos, além de ser uma das línguas mais utilizadas no mundo. Portanto, é importante já ir se acostumando com esse formato. O vocabulário necessário, porém, é limitado. De forma alguma precisarás ter fluência em inglês para entender o código.

O código também pode ser espacialmente organizado usando novas linhas. Esse é um procedimento comum em torno de argumentos de funções. O próximo pedaço de código é equivalente ao anterior, e executará exatamente da mesma maneira. Observe como usei uma nova linha para alinhar verticalmente os argumentos da função list. Você verá em breve que, ao longo do livro, esse tipo de alinhamento vertical é constantemente usado.

# create a list
object.x <- list(var1 = 'abc',
                 var2 = 1:5)

# print to prompt
print(object.x)
## $var1
## [1] "abc"
## 
## $var2
## [1] 1 2 3 4 5

O código também segue uma estrutura bem definida. Uma das decisões a ser feita na escrita de códigos de computação é a forma de nomear os objetos e como lidar com a estrutura do texto do código em geral. É recomendável seguir um padrão limpo de código, de forma que o mesmo seja fácil de ser mantido ao longo do tempo e de ser entendido por outros usuários. Para este livro, foi utilizado uma mistura de escolhas pessoais do autor com o estilo de código sugerido pelo Google em https://google.github.io/styleguide/Rguide.xml. O usuário, porém, é livre para escolher a estrutura que achar mais eficiente. Sugiro que se conheçam essas normas de estrutura de código no R, de forma a maximizar a usabilidade do mesmo. Iremos voltar a esse assunto no próximo capítulo.

Referências

Wickham, Hadley. 2014b. “Tidy Data.” The Journal of Statistical Software 59 (10). http://www.jstatsoft.org/v59/i10/.