Introdução ao R

Um guia prático para iniciantes

Autor

Marcelo S. Perlin (marcelo.perlin@ufrgs.br)

Data de Publicação

15/05/2024

Bem Vindo!

Seja bem vindo ao site do livro Introdução ao R. Aqui encontrarás o conteúdo integral do livro em formato web. A obra completa está disponível como um ebook, impresso capa normal ou impresso capa dura, com um acessível preço em torno de 15 reais para o ebook. Para detalhes sobre o livro impresso, leia este texto. Se gostaste do livro e estás utilizando-o para o seu trabalho, considere comprar a obra em um dos seus formatos. No papel de autor, aprecio o gesto e irei considerá-los como um fator motivante para futuras obras.

O livro é um projeto acadêmico, com o objetivo principal de disseminar conhecimento sobre o R além da sala de aula, para um público maior e diversificado. Sinto que esta é uma ótima forma de contribuir de volta por tudo que o R e outros softwares livres proporcionaram ao longo de minha carreira de professor e pesquisador.

Caso queiras contribuir para este e outros projetos, uma ótima maneira é comprar o livro impresso e doar para a sua biblioteca local, ou então doar o ebook para outra pessoa. Alternativamente, podes enviar um pix direto para o autor com o QR code ao lado. Para realizar o pagamento, basta abrir o aplicativo do seu respectivo banco e ler o QR code na área de pix. Alternativamente, o endereço do pix é o meu email, marceloperlin@gmail.com. Todos recursos via pix serão exclusivamente usados para financiar meus próximos livros (capa, gastos com servidor, dados pagos, divulgação, ..) e projetos de pesquisa.

Licença de uso

Este trabalho é licenciado pela Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. O código contigo neste site, e no livro como um todo, é disponibilizado pela licença do MIT, portanto, sinta-se livre para utilizá-lo no seu trabalho, desde de que a origem do código seja citada. Uma sugestão de citação é disponibilizada abaixo:

Perlin, M. S. Introdução ao R - Um guia prático para iniciantes, Porto Alegre: Marcelo S. Perlin (publicação independente), 2024.

Prefácio

Em 2017 publiquei o meu primeiro livro, Análise de Dados Financeiros e Econômicos com o R. Com a introdução de diferentes revisões ao longo dos anos, logo percebi que seria desejável ter diversos livros, ao invés de uma única obra no tema. Este é o primeiro livro da série, com uma introdução ao uso do R e RStudio para iniciantes.

Sou professor da Universidade Federal do Rio Grande do Sul, onde leciono disciplinas relacionadas ao uso do R em análise de dados. A experiência em sala de aula me proporcionou a experiência de ver, ao vivo, onde os alunos mais erram e qual o melhor caminho para aprender a usar o R. Este livro é um projeto pessoal e acadêmico para disseminar conhecimento para um público maior.

Outra motivação que tive para escrever o livro foi minha experiência na utilização de códigos disponibilizados por outros pesquisadores. Na maioria das vezes, esses códigos são desorganizados, pouco claros e, possivelmente, funcionam apenas no computador do pesquisador que os escreveu! Assim como se espera que um artigo científico esteja bem escrito, também se deve esperar que o código por trás da respectiva pesquisa seja de qualidade. Porém, esse não é o caso na grande maioria das vezes. Com este livro, irei atacar esse problema, formalizando uma estrutura de código voltada à reprodutibilidade científica, focando em organização e usabilidade. Nesse sentido, espero que as futuras gerações de pesquisadores estejam mais bem preparadas para compartilhar o seu trabalho.

Antes de prosseguir, um aviso. Não iremos trabalhar usos avançados do R. O conteúdo será limitado a exemplos simples e práticos de utilização do software para a construção de pesquisa baseada em dados. De fato, um dos desafios na escrita deste livro foi definir o limite entre o material introdutório e o avançado. Procurei, sempre que possível, dosar gradualmente o nível de complexidade. Para leitores interessados em conhecer funções avançadas do programa e o seu funcionamento interno, sugiro a leitura do manual oficial do R (Teetor 2011) e de Wickham (2019).

Com este livro irás aprender os seguinte tópicos:

  • Primeiros passos com o R e RStudio;
  • Primeiros passos com pacotes do R;
  • Interação do R com o seu computador e a internet;
  • Manipulação de objetos básicos e de armazenamento no R;
  • Importação de dados locais e da internet;

Como ler este 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 impresso 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. Sugiro também o uso da versão online do livro no site https://www.msperlin.com/introR/, a qual permite que os código de exemplo sejam copiados direto para a sua sessão do R. Assim, perderás menos tempo digitando código.

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, teste o código no seu computador e brinque com o mesmo, modificando os exemplos e verificando o efeito das modificações nas saídas do programa. Procure sempre entender como a rotina estudada pode ajudar na solução de um problema seu. Cada capítulo apresenta no seu final uma lista de exercícios. Podes testar as suas habilidades de programação resolvendo as atividades propostas.

Códigos no livro

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
L <- list(var1 = 'abc', var2 = 1:5)

# print to prompt
print(L)
R> $var1
R> [1] "abc"
R> 
R> $var2
R> [1] 1 2 3 4 5

No caso anterior, os textos L <- list(var1 = 'abc', var2 = 1:5) e print(L) são os códigos de entrada. A saída do programa é a apresentação na tela dos elementos de x, com o símbolo antecessor R>. 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 em códigos longos. Afinal, o código tem que necessariamente caber na página do livro impresso.

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

# print to prompt
print(L)
R> $var1
R> [1] "abc"
R> 
R> $var2
R> [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 entre escolhas pessoais e o estilo de código sugerido pelo Google. O usuário, porém, é livre para escolher a estrutura que achar mais eficiente, desde que seja coerente.

Animações (gifs)

Esta edição do livro inclui animações de código no formato gif, as quais devem ajudar a memorizar e visualizar as diferentes operações na plataforma. Para os leitores do livro impresso, obviamente não existe maneira de incluir animações em papel. Como alternativa, cada animação inclui um QRCode que irá direcionar o leitor para página na web com a animação em questão. A imagem a esquerda é a primeira tela de cada animação. Veja o exemplo abaixo na Figura Exemplo de animação:

Figura 1: Exemplo de animação

Para utilizar, abra seu celular e aponte a câmera para o QRCode da página. Após isso, basta clicar no link que aparecer na tela do aparelho. O resultado deve ser uma animação em uma página na internet.

Material suplementar

Todo o material usado no livro está publicamente disponível na Internet e distribuído com um pacote R denominado introR. Este inclui arquivos de dados, e algumas funções que irão facilitar a execução dos exemplos do livro. Se você planeja, como sugerido, escrever código enquanto lê o livro, este pacote ajudará muito em sua jornada.

Para instalar este pacote no seu computador, basta executar algumas linhas de comando no R. Veja o código destacado a seguir e copie e cole o mesmo no prompt do RStudio (canto inferior esquerdo da tela, com um sinal “>”) e pressione Enter para cada comando. Esteja ciente de que você precisará do R e RStudio instalados em seu computador (consulte 1.4 Como Instalar o R).

# install devtools dependency
install.packages('devtools')

# install book package
devtools::install_github('msperlin/introR')

O que este código fará é instalar o pacote devtools, uma dependência necessária para instalar código do Github – um repositório de pacotes onde o livro está hospedado. Depois disso, uma chamada para devtools::install_github('msperlin/introR') irá instalar o pacote em seu computador. Depois da instalação, todos os arquivos do livro estarão disponíveis localmente, salvos em uma pasta do seu computador.

Opcionalmente, caso quiser olhar os arquivos de dados disponíveis no pacote, basta chamar a seguinte linha de código no prompt do R:

introR::data_list()

Conteúdo para instrutores

Se você for um instrutor de R, aqui encontrarás bastante material para usar em suas aulas:

Exercícios estáticos na internet
Cada capítulo deste livro inclui exercícios que seus alunos podem praticar. Todas as soluções estão disponíveis na versão online do livro, disponível em https://www.msperlin.com/introR/.
Acesso ao livro na internet
Existe uma versão online e gratuita do livro, disponível em https://www.msperlin.com/introR/. Seu alunos, mesmo aqueles que não compraram o livro, terão acesso ao material do próprio celular.

Espero que goste deste livro. Este é um projeto pessoal e especial, produzido desde 2017 a base de muito suor e, literalmente, litros de café.

Boa leitura!

Marcelo S. Perlin

Livros do Autor

Poupando e Investindo em Renda Fixa: Este livro trabalho o tópico de educação financeira, apresentando uma forma de investir com foco no longo prazo, resiliência e na qualidade de vida do investidor. O grande diferencial da obra é o uso frequente de dados financeiros reais para entender melhor como o mercado de renda fixa funciona, os efeitos dos tributos e custos operacionais, e quais são as melhores opções para o investidor pessoa física. Cada capítulo do livro apresenta e analisa os principais produtos disponíveis na renda fixa: produtos bancários (CDBs, LCA, entre outros), Tesouro Direto (Prefixado, IPCA+, SELIC), fundos de renda fixa e debêntures.

Visualização de dados com o R: Este livro é uma extensão da minha outra obra, Análise de Dados Financeiros e Econômicos com o R. Aqui escrevo sobre tudo aquilo que aprendi sobre visualização de dados em mais de doze anos de carreira como professor, pesquisador e consultor da área de finanças e economia. O conteúdo do livro percorre sobre os seguintes pontos: princípios e prática de visualização de dados com o {ggplot2} (Wickham et al. 2024), construção de gráficos estatísticos e mapas, e automatização e programação com o {ggplot2} (Wickham et al. 2024).

Questões de R em Concursos Públicos: Soluções e comentários: Este livro busca melhor preparar candidatos para as mais variadas provas de concursos, apresentando um conteúdo curado de soluções e comentários de questões passadas sobre o uso do R. Cada exercício possui explicações completas e demonstrações de código que permitem ao leitor entender a solução, ao mesmo tempo em que aprende novos conceitos. Ao terminar de ler esse livro, espero que o leitor aumente o seu conhecimento, e as suas chances de ser aprovado no concurso desejado.

Programação e Análise de Dados com o R: Projeto em andamento, possivelmente será finalizado e publicado em 2025.

Agradecimentos

Este livro não seria possível sem a autonomia do meu cargo de professor universitário. Assim, deixo aqui o meu formal agradecimento a UFRGS (Universidade Federal do Rio Grande do Sul), por possibilitar e incentivar este empreendimento no mercado literário. Escrever livros se tornou uma das minhas paixões profissionais, e sou muito grato por poder fazer isso de forma livre, espontânea e autônoma.

Adicionalmente, não posso também deixar de agradecer a toda a comunidade do R. Em especial, agradeço os autores do pacote {quarto} (Allaire e Dervieux 2024), sem o qual não seria possível compilar e automatizar a produção deste livro de uma forma tão fácil. Agradeço também aos autores do pacote {bookdown} (Xie 2024a), o qual foi utilizado por muitos anos nos livros anteriores. Adicionalmente, abaixo destaco os respectivos pacotes disponíveis no CRAN utilizados na produção do livro e suas devidas referências. A lista foi gerada automaticamente e está em ordem alfabética.

{base} (R Core Team 2023a), {dplyr} (Wickham et al. 2023), {forcats} (Wickham 2023a), {fs} (Hester, Wickham, e Csárdi 2024), {ggplot2} (Wickham et al. 2024), {glue} (Hester e Bryan 2024), {gt} (Iannone et al. 2024), {knitr} (Xie 2024b), {purrr} (Wickham e Henry 2023), {quarto} (Allaire e Dervieux 2024), {readr} (Wickham, Hester, e Bryan 2024), {renv} (Ushey e Wickham 2024), {reticulate} (Ushey, Allaire, e Tang 2024), {rmarkdown} (Allaire et al. 2024), {stats} (R Core Team 2023b), {tibble} (Müller e Wickham 2023), {tidyr} (Wickham, Vaughan, e Girlich 2024), {tidyverse} (Wickham 2023b)