Pular para o conteúdo principal
InicioTutoriaisProgramação R

Pacotes R: Um tutorial para iniciantes

Uma introdução aos pacotes do R com base em 11 das perguntas mais frequentes dos usuários.
abr. de 2024  · 23 min leer

Os pacotes R são coleções de funções e conjuntos de dados desenvolvidos pela comunidade. Eles aumentam o poder do R aprimorando as funcionalidades básicas existentes do R ou adicionando novas funcionalidades. Por exemplo, se você costuma trabalhar com quadros de dados, provavelmente já ouviu falar de dplyr ou data.tabledois dos pacotes mais populares do R.

Mas imagine que você queira fazer algum processamento de linguagem natural de textos coreanos, extrair dados meteorológicos da Web ou até mesmo estimar a evapotranspiração real usando modelos de balanço de energia da superfície terrestre. Recentemente, o repositório oficial(CRAN) atingiu 10.000 pacotes publicados, e muitos outros estão disponíveis publicamente na Internet.

Se estiver começando a usar o R, esta postagem abordará os conceitos básicos dos pacotes do R e como usá-los. Você abordará os seguintes tópicos e 11 perguntas frequentes de usuários:

Comece a aprender R gratuitamente

1. O que é um pacote R?

Vamos começar com algumas definições. Um pacote é uma maneira adequada de organizar seu próprio trabalho e, se desejar, compartilhá-lo com outras pessoas. Normalmente, um pacote inclui código (não apenas código R!), documentação do pacote e das funções nele contidas, alguns testes para verificar se tudo funciona como deveria e conjuntos de dados.

As informações básicas sobre um pacote são fornecidas no arquivo DESCRIPTION, onde você pode descobrir o que o pacote faz, quem é o autor, a que versão pertence a documentação, a data, o tipo de licença utilizada e as dependências do pacote.

Observe que você também pode usar o link alternativo de estatísticas para ver o arquivo DESCRIPTION.

Além de encontrar os arquivos DESCRIPTION, como cran.r-project.org ou stat.ethz.ch, você também pode acessar o arquivo de descrição dentro do R com o comando packageDescription("package"), por meio da documentação do pacote help(package = "package"), ou on-line no repositório do pacote.

Por exemplo, para o pacote "stats", essas formas serão:

packageDescription("stats")
help(package = "stats")

2. O que são repositórios R?

Um repositório é um local onde os pacotes estão localizados para que você possa instalá-los a partir dele. Embora você ou sua organização possam ter um repositório local, normalmente, eles estão on-line e acessíveis a todos. Três dos repositórios mais populares para pacotes R são:

  • CRAN: o repositório oficial, é uma rede de servidores ftp e web mantida pela comunidade R em todo o mundo. A fundação R o coordena e, para que um pacote seja publicado aqui, ele precisa passar por vários testes que garantem que o pacote está seguindo as políticas do CRAN
  • Bioconductor: este é um repositório de tópicos específicos destinado a software de código aberto para bioinformática. Como o CRAN, ele tem seus próprios processos de envio e revisão, e sua comunidade é muito ativa, com várias conferências e reuniões por ano.
  • Github: embora não seja específico do R, o Github é provavelmente o repositório mais popular para projetos de código aberto. Sua popularidade se deve ao espaço ilimitado para código aberto, à integração com o git, um software de controle de versão, e à facilidade de compartilhar e colaborar com outras pessoas. Mas esteja ciente de que não há nenhum processo de revisão associado a ele.

3. Como instalar um pacote R

Instalação de pacotes do R a partir do CRAN

A maneira de instalar um pacote R dependerá de onde ele está localizado. Portanto, para pacotes disponíveis publicamente, isso significa a qual repositório ele pertence. A maneira mais comum é usar o repositório CRAN, então você só precisa do nome do pacote e usar o comando install.packages("package").

Por exemplo, o pacote mais antigo publicado no CRAN e que ainda está on-line e sendo atualizado é o pacote vioplot de Daniel Adler.

Você consegue encontrar a data de publicação? Pista: Está na descrição do pacote ;).

Para instalá-lo a partir do CRAN, você precisará usar:

install.packages("vioplot")

Depois de executá-lo, você receberá algumas mensagens na tela. Eles dependerão do sistema operacional que você está usando, das dependências e se o pacote foi instalado com sucesso.

Vamos dar uma olhada mais profunda no resultado da instalação do vioplot. Algumas das mensagens que você pode receber são

Installing package into ‘/home/username/R/x86_64-pc-linux-gnu-library/3.3’
(as ‘lib’ is unspecified)

Isso indica onde o pacote está instalado no computador, e você pode fornecer um local de pasta diferente usando o parâmetro lib.

trying URL 'https://cran.rstudio.com/src/contrib/vioplot_0.2.tar.gz'
Content type 'application/x-gzip' length 3801 bytes
==================================================
downloaded 3801 bytes

Aqui você recebe informações sobre a origem e o tamanho do pacote. Isso dependerá do espelho do CRAN que você selecionou.

Também é possível alterá-lo, mas você lerá mais sobre isso mais adiante neste post.

* installing *source* package ‘vioplot’ ...
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (vioplot)

Essas são as mensagens da instalação em si, o código-fonte, a ajuda, alguns testes e, por fim, uma mensagem de que tudo correu bem e o pacote foi instalado com sucesso. Dependendo da plataforma em que você está, essas mensagens podem ser diferentes.

The downloaded source packages are in
    ‘/tmp/RtmpqfWbYL/downloaded_packages’

A última informação informa onde estão localizados os arquivos originais do pacote. Eles não são necessários para o uso do pacote, portanto, geralmente são copiados em um local de pasta temporário.

Por fim, para instalar mais de um pacote R por vez, basta escrevê-los como um vetor de caracteres no primeiro argumento da função install.packages():

install.packages(c("vioplot", "MASS"))

Instalação a partir de espelhos CRAN

Lembre-se de que o CRAN é uma rede de servidores (cada um deles chamado de "espelho"), portanto, você pode especificar qual deles gostaria de usar. Se você estiver usando o R por meio da interface RGui, poderá fazer isso selecionando-o na lista que aparece logo após o uso do comando install.packages(). No RStudio, o espelho já está selecionado por padrão.

Você também pode selecionar seu espelho usando chooseCRANmirror() ou diretamente na função install.packages() usando o parâmetro repo. Você pode ver a lista de espelhos disponíveis em getCRANmirrors() ou diretamente na página de espelhos do CRAN.

Exemplo: para usar o espelho da Biblioteca da Universidade de Ghent (Bélgica) para instalar o pacote vioplot, você pode executar o seguinte:

install.packages("vioplot", repo = "https://lib.ugent.be/CRAN")

Instalação de pacotes do Bioconductor

No caso do Bioconductor, a maneira padrão de instalar um pacote é executando primeiro o seguinte script:

source("https://bioconductor.org/biocLite.R")

Isso instalará algumas funções básicas necessárias para instalar pacotes do bioconductor, como a função biocLite(). Se você quiser instalar os pacotes principais do Bioconductor, basta digitá-lo sem outros argumentos:

biocLite()

Se, no entanto, você estiver interessado em apenas alguns pacotes específicos desse repositório, poderá digitar seus nomes diretamente como um vetor de caracteres:

biocLite(c("GenomicFeatures", "AnnotationDbi"))

Instalação de pacotes via devtools

Como você leu acima, cada repositório tem sua própria maneira de instalar um pacote a partir dele, portanto, caso você use regularmente pacotes de fontes diferentes, esse comportamento pode ser um pouco frustrante. Uma maneira mais eficiente é provavelmente usar o pacote devtools para simplificar esse processo, pois ele contém funções específicas para cada repositório, incluindo o CRAN.

Você pode instalar o devtools normalmente com o install.packages("devtools"), mas talvez também precise instalar o Rtools no Windows, as ferramentas de linha de comando do Xcode no Mac ou o r-base-dev e o r-devel no Linux.

Depois que o devtools for instalado, você poderá usar as funções do utilitário para instalar outros pacotes. As opções são:

  • install_bioc() do Bioconductor,
  • install_bitbucket() do Bitbucket,
  • install_cran() do CRAN,
  • install_git() de um repositório git,
  • install_github() do GitHub,
  • install_local() de um arquivo local,
  • install_svn() de um repositório SVN,
  • install_url() a partir de um URL, e
  • install_version() de uma versão específica de um pacote CRAN.

Por exemplo, para instalar o pacote babynames de seu repositório do Github, você pode usar:

devtools::install_github("hadley/babynames")

4. Como atualizar, remover e verificar os pacotes R instalados

Depois de passar mais tempo com o R, é normal que você use o install.packages() algumas vezes por semana ou até mesmo por dia e, dada a velocidade com que os pacotes do R são desenvolvidos, é possível que, mais cedo ou mais tarde, você precise atualizar ou substituir seus pacotes favoritos. Nesta seção, você encontrará algumas funções que podem ajudá-lo a gerenciar sua coleção.

  • Para verificar quais pacotes estão instalados em seu computador, você pode usar:
installed.packages()
  • A desinstalação de um pacote é simples com a função remove.packages(), no seu caso:
remove.packages("vioplot")
  • Você pode verificar quais pacotes precisam de atualização com uma chamada para a função:
old.packages()
  • Você pode atualizar todos os pacotes usando:
update.packages()
  • Mas para um pacote específico, basta usar mais uma vez:
install.packages("vioplot")

5. Existem interfaces de usuário para a instalação de pacotes R?

Se preferir uma interface gráfica de usuário (ou seja, apontar e clicar) para instalar pacotes, tanto o RStudio quanto o RGui as incluem. No RStudio, você o encontrará em Tools -> Install Package (Ferramentas -> Instalar pacote), e lá aparecerá uma janela pop-up para que você digite o pacote que deseja instalar:

instalar pacotes

No RGui, você encontrará os utilitários no menu Packages (Pacotes).

rgui

6. Como carregar pacotes

Depois que um pacote é instalado, você está pronto para usar suas funcionalidades. Se precisar apenas de um uso esporádico de algumas funções ou dados dentro de um pacote, você poderá acessá-los com a notação packagename::functionname(). Por exemplo, como você instalou o pacote babynames, pode explorar um de seus conjuntos de dados.

Você se lembra de como ter uma visão geral de quais funções e dados estão contidos em um pacote?

Sim, o help(package = "babynames") pode lhe dizer isso.

Para acessar o conjunto de dados de nascimentos dentro do pacote babynames, basta digitar:

babynames::births
## # A tibble: 6 x 2
##    year  births
##   <int>   <int>
## 1  2009 4130665
## 2  2010 3999386
## 3  2011 3953590
## 4  2012 3952841
## 5  2013 3932181
## 6  2014 3988076

Se você for usar o pacote com mais intensidade, talvez valha a pena carregá-lo na memória. A maneira mais simples de fazer isso é com o comando library().

Observe que a entrada de install.packages() é um vetor de caracteres e exige que o nome esteja entre aspas, enquanto library() aceita caracteres ou nomes e permite que você escreva o nome do pacote sem aspas.

Depois disso, você não precisará mais da notação package::function() e poderá acessar diretamente suas funcionalidades como qualquer outra função ou dado de base do R:

births
## # A tibble: 6 x 2
##    year  births
##   <int>   <int>
## 1  2009 4130665
## 2  2010 3999386
## 3  2011 3953590
## 4  2012 3952841
## 5  2013 3932181
## 6  2014 3988076

Você já deve ter ouvido falar da função require(): de fato, é possível carregar um pacote com essa função, mas a diferença é que ela não lançará um erro se o pacote não estiver instalado.

Portanto, use essa função com cuidado!

Você pode ler mais sobre library() vs require() no R em um artigo separado.

7. Qual é a diferença entre um pacote e uma biblioteca?

Falando sobre a função library(), às vezes há confusão entre um pacote e uma biblioteca, e você pode encontrar pessoas chamando as "bibliotecas" de pacotes.

Não se confunda: library() é o comando usado para carregar um pacote e se refere ao local onde o pacote está contido, geralmente uma pasta em seu computador, enquanto um pacote é a coleção de funções convenientemente agrupadas.

Talvez possa ajudar uma citação de Hadley Wickham, cientista-chefe de dados da RStudio e instrutor do curso DataCamp "Writing functions in R":

Outro bom lembrete dessa diferença é executar a função library() sem argumentos. Ele fornecerá a lista de pacotes instalados em diferentes bibliotecas em seu computador:

library()

8. Como carregar mais de um pacote R por vez

Embora você possa simplesmente inserir um vetor de nomes na função install.packages() para instalar um pacote, no caso da função library(), isso não é possível. É possível carregar um conjunto de pacotes um de cada vez ou, se preferir, usar uma das muitas soluções alternativas desenvolvidas pelos usuários do R.

Você pode encontrar exemplos nesta discussão do Stack Overflow, neste pacote R e neste repositório do GitHub.

9. Como descarregar um pacote R

Para descarregar um determinado pacote, você pode usar a função detach(). O uso será:

detach("package:babynames", unload=TRUE)

10. Quais são as fontes alternativas de documentação e ajuda?

Como você leu nas seções anteriores, o arquivo DESCRIPTION contém informações básicas sobre um pacote e, embora essas informações sejam muito úteis, elas não o ajudarão a usar esse pacote para sua análise. Em seguida, você precisará de mais duas fontes de documentação: arquivos de ajuda e vinhetas.

Arquivos de ajuda

Como no R básico, os comandos ?() e help() são a primeira fonte de documentação quando você está começando com um pacote. Você provavelmente se lembra de que pode obter uma visão geral do pacote usando help(package = "packagename"), mas cada função pode ser explorada individualmente em help("name of the function") ou help(function, package = "package") se o pacote não tiver sido carregado, onde você normalmente encontrará a descrição da função e seus parâmetros e um exemplo de aplicação.

Por exemplo, talvez você se lembre de que, para obter o arquivo de ajuda do comando vioplot do pacote vioplot, você pode digitar:

help(vioplot, package = "vioplot")

Dica: você também pode usar outra maneira de ver o que está dentro de um pacote carregado. Use o comando ls() dessa forma:

library(babynames)
ls("package:babynames")
## [1] "applicants" "babynames"  "births"     "lifetables"

Vinhetas

Outra fonte de ajuda muito útil incluída na maioria dos pacotes são as vinhetas, que são documentos em que os autores mostram algumas funcionalidades de seus pacotes de forma mais detalhada. Seguir as vinhetas é uma ótima maneira de colocar a mão na massa com os usos comuns do pacote, portanto, é uma maneira perfeita de começar a trabalhar com ele antes de fazer sua própria análise.

Como você deve se lembrar, as informações das vinhetas contidas em um determinado pacote também estão disponíveis em seu arquivo DOCUMENTATION localmente ou on-line, mas você também pode obter a lista de vinhetas incluídas em seus pacotes instalados com a função browseVignettes() e, para um determinado pacote, basta incluir seu nome como parâmetro: browseVignettes(package="packagename"). Em ambos os casos, uma janela do navegador será aberta para que você possa explorar facilmente e clicar na vinheta preferida para abri-la.

Se você preferir permanecer na linha de comando, o comando vignette() mostrará a lista de vinhetas, vignette(package = "packagename"), as que estão incluídas em um determinado pacote e, depois de localizar a que deseja explorar, basta usar o comando vignette("vignettename").

Por exemplo, um dos pacotes mais populares para visualização é o ggplot2. Você provavelmente já deve tê-lo instalado no computador, mas, se não o fez, esta é a sua chance de fazê-lo e testar suas novas habilidades no install.packages().

Supondo que você já tenha instalado o site ggplot2, poderá verificar quais vinhetas estão incluídas nele:

vignette(package = "ggplot2")

Duas vinhetas estão disponíveis para ggplot2, "ggplot2-specs" e "extending-ggplot2". Você pode verificar o primeiro com:

vignette("ggplot2-specs")

No RStudio, isso será exibido na guia Help à direita, enquanto no RGui ou na linha de comando isso abrirá uma janela do navegador com a vinheta.

Você pode encontrar mais opções para obter ajuda do R no site do R-Project.

11. Como escolher os pacotes R corretos

A esta altura, você deve ser capaz de instalar e obter o máximo dos pacotes do R, mas ainda há uma última pergunta no ar: onde encontrar os pacotes de que precisa?

A maneira mais comum de descobrir pacotes é aprender R. Em muitos tutoriais e cursos, os pacotes mais populares são geralmente mencionados. Por exemplo, o curso Cleaning Data in R ensina tudo sobre tidyr.

Para cada tópico que você gostaria de abordar no R, provavelmente há um pacote interessante que você pode encontrar.

Mas e se você tiver um problema específico e não souber por onde começar, por exemplo, como afirmei na introdução desta postagem, e se você estiver interessado em analisar alguns textos coreanos?

E se você quiser coletar alguns dados meteorológicos? Ou estimar a evapotranspiração?

Você analisou vários repositórios e, sim, sabe que pode verificar a lista de pacotes do CRAN, mas, com mais de 10.000 opções, é muito fácil se perder.

Vamos dar uma olhada em algumas alternativas!

Visualização de tarefas do CRAN

Uma alternativa pode ser navegar pelas categorias de pacotes do CRAN, graças às exibições de tarefas do CRAN.  É isso mesmo! O CRAN, o repositório oficial, também oferece a opção de navegar pelos pacotes. As exibições de tarefas são basicamente temas ou categorias que agrupam pacotes com base em sua funcionalidade.

Como você pode ver abaixo, todos os pacotes relacionados à genética serão categorizados na visualização de tarefas "Genetics": 

Guia de pacotes R

Tomando como exemplo os textos em coreano, você pode encontrar facilmente o pacote de que precisa navegando até a visualização da tarefa Natural Language Processing. Lá, você pode ler o texto para encontrar o pacote que pode lidar com seus textos, ou pode fazer um simples CTRL+F e digitar a palavra-chave que está procurando. 

Você terá o pacote certo em pouco tempo, com certeza! 

RDocumentação

Outra alternativa para encontrar pacotes pode ser o RDocumentation, um agregador de documentação de ajuda para pacotes R do CRAN, BioConductor e GitHub, que oferece uma caixa de pesquisa pronta para suas solicitações diretamente na página principal.

Talvez você ainda não conheça essa segunda alternativa, então vamos nos aprofundar um pouco mais!

Vamos começar com os textos em coreano. Um recurso interessante do RDocumentation é a pesquisa rápida, de modo que, enquanto você está digitando, alguns primeiros resultados são exibidos:

pacotes no R

Mas vamos fazer a pesquisa completa: se você inserir a palavra-chave "korean" (coreano) e clicar em "Search" (pesquisar), obterá duas colunas com resultados: pacotes à esquerda e funções à direita.

Concentrando-se na coluna de pacotes, para cada resultado, você obtém o nome do pacote, com um link para informações mais detalhadas, o nome do autor, também com link para ver outros pacotes do mesmo autor, alguma descrição do pacote com a palavra de pesquisa destacada e informações sobre a popularidade do pacote.

resultados da pesquisa

Falando em popularidade, isso é relevante porque a pesquisa classificará os pacotes mais baixados em primeiro lugar, de modo a melhorar a relevância dos resultados. Se você quiser saber mais detalhes sobre a implementação de pesquisa do RDocumentation, há uma postagem muito detalhada sobre pontuação e classificação

Portanto, parece que o pacote KoNLP pode atender às suas necessidades. Após clicar no nome, você obterá as seguintes informações:

  • Um cabeçalho com o nome do pacote, o autor, a versão, a opção de selecionar versões mais antigas, o número de downloads e um link para a página de documentação do RD.
  • Uma descrição do pacote.
  • A lista de funções incluídas no pacote, em que cada uma delas é clicável para que você possa obter mais detalhes sobre o uso da função. Você também tem uma caixa de pesquisa na qual pode obter acesso rápido à função desejada.
  • Um gráfico com a evolução do número de downloads.
  • Os detalhes do pacote com as informações do arquivo DESCRIPTION.
  • E, por fim, um selo que pode ser incluído no arquivo README do pacote com o link para a documentação do RD.

rdocumentação

  • Pacote RDocumentation. O RDocumentation não é apenas um site, mas também um pacote R. Ele substitui as funções de ajuda para que você possa ter o poder do RDocumentation incorporado ao seu fluxo de trabalho. Depois que esse pacote for carregado, a função help() abrirá uma janela do navegador ou o painel de ajuda do RStudio com acesso ao RDocumentation.

Ter o RDocumentation diretamente no painel do R ou do RStudio oferece algumas vantagens em comparação com o uso do site:

  • Verifique a versão instalada do pacote. O painel de ajuda de um pacote fornecerá as mesmas informações que a página da Web (downloads, descrição, uma lista de funções, detalhes), além de informações sobre a versão instalada do pacote.

Verifique, por exemplo, o pacote vioplot que você instalou anteriormente:

install.packages("RDocumentation")
library(RDocumentation)
help(package = "vioplot")

vioplot

  • Capacidade de instalar ou atualizar um pacote diretamente do painel de ajuda. Sei que agora você é um especialista em instalação de pacotes, mas aqui você tem outra alternativa, clicando em um botão no painel de ajuda fornecido pelo RDocumentation.
remove.packages("vioplot")
help(package = "vioplot")

vioplot

  • Executar e propor exemplos. O painel de ajuda das funções dentro de um pacote lhe dará a opção de executar os exemplos novamente, bastando clicar em um botão. Você também pode propor exemplos que podem ser incorporados à página de ajuda e testados por outros usuários do R.
install.packages("vioplot")
help(vioplot)

exemplos

Conclusões

A postagem de hoje abordou uma ampla gama de técnicas e funções para obter o máximo do R por meio do uso de pacotes. Como sempre, há mais de uma maneira de realizar uma tarefa específica no R, e o gerenciamento de pacotes não é uma exceção.

Esperamos que você tenha aprendido as formas mais usadas e algumas alternativas de descobrir, instalar, carregar, atualizar, obter ajuda ou remover um pacote do R.

Esta postagem não abordou muitos detalhes sobre a estrutura interna dos pacotes ou sobre como criar os seus próprios. Fique atento ao blog e aos cursos da DataCamp para conhecer esses e outros tópicos relacionados, mas, enquanto isso, uma boa referência é o livro "R packages", que você pode encontrar aqui.

Se você ainda não descobriu, pesquisando na RDocumentation, com o weatherData você pode extrair dados meteorológicos da Internet e, se estiver interessado em evapotranspiração, talvez deva dar uma olhada no Evapotranspiration, water, ou SPEI pacotes.

Temas

Cursos R

Course

Introduction to R

4 hr
2.7M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
See DetailsRight Arrow
Start Course
Veja MaisRight Arrow
Relacionado

blog

O que é o R? - Uma introdução à potência da computação estatística

Aprenda tudo o que você precisa saber sobre a linguagem de programação R e descubra por que ela é a linguagem mais usada na ciência de dados.
Summer Worsley's photo

Summer Worsley

18 min

blog

40 perguntas e respostas para entrevistas sobre programação em R para todos os níveis

Aprenda as 40 perguntas fundamentais da entrevista sobre programação em R e suas respostas para todos os níveis de senioridade: perguntas de nível básico, intermediário e avançado.
Elena Kosourova's photo

Elena Kosourova

20 min

tutorial

Tutorial de Pipes em R para iniciantes

Saiba mais sobre o famoso operador de pipe %>% e outros pipes no R, por que e como você deve usá-los e quais alternativas você pode considerar!
Karlijn Willems's photo

Karlijn Willems

25 min

tutorial

RStudio Tutorial

Saiba o que é o RStudio e como instalá-lo e começar a usá-lo
Elena Kosourova 's photo

Elena Kosourova

17 min

tutorial

Criação de uma lista no R

Pratique Listas em R usando o material do curso Intro to R do DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 min

tutorial

Classificação de K-Nearest Neighbors (KNN) com o tutorial do R

Aprenda a usar os pacotes R 'class' e 'caret', ajustar hiperparâmetros e avaliar o desempenho do modelo.
Abid Ali Awan's photo

Abid Ali Awan

11 min

See MoreSee More