Pacotes em R

Na maioria das nossas práticas utilizamos sintaxes e funções básicas do R, ou seja, utilizamos o “Base R”. Todos os pacotes oficiais são disponibilizados no CRAN (Comprehensive R Archive Network), assim também, outros (não oficiais) estão disponibilizados de outras maneiras como por exemplo no GitHub ou até mesmo no site do autor.

# Consigo verificar a qual pacote determinada função pertence.
?sum
?mean

A comunidade de desenvolvedores tem crescido muito, resultando em mais pacotes para serem utilizados. Podemos imaginar que podemos executar as mesmas práticas de forma mais simples utilizando de funções contidas em outros pacotes. Um pacote é um empacotamento contendo funções, arquivos de dados e arquivos de ajuda.

# Verifico os pacotes carregados por default no R.
getOption("defaultPackages")
## [1] "datasets"  "utils"     "grDevices" "graphics"  "stats"     "methods"
# Verifico todos os pacotes disponíveis na minha biblioteca
library()
## Warning in library(): libraries '/usr/local/lib/R/site-library', '/usr/lib/
## R/site-library' contain no packages
# Verifico todos os pacotes carregados
(.packages())
## [1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [7] "base"

Peças essenciais que compõem os pacotes do R

Library - Biblioteca: Diretório no qual contém sub-diretórios de pacotes instalados. Package - Pacotes: Contém uma coleção de funções do R juntamente suas documentações. Repositories - Repositórios: Endereços informando onde estão os pacotes disponíveis através do CRAN.

# Carregando pacotes - forma 01
library(ggplot2)

# Carregando pacotes - forma 02
require(ggmap)
## Loading required package: ggmap
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.

Instalando pacotes

A forma mais simples de instalar um pacote do CRAN no R é fazendo uso da função install.packages().

install.packages("purrr", dependencies = TRUE)
## Installing package into '/home/jean/Documentos/Biblioteca'
## (as 'lib' is unspecified)
# o argumento "dependencies = TRUE" significa que é para o R baixar todos os pacotes que "purrr" depende.

Ao instalarmos os pacotes do R de forma padrão, apenas o usuário root terá permissão para a instalação, pois, a biblioteca padrão - onde os pacotes são instalados - fica no diretório padrão de instalação do R. Para verificar qual é o diretório padrão de instalação do R da sua máquina utilize o comando:

R.home()
## [1] "/usr/lib/R"

Uma desvantagem de instalarmos pacotes no R dessa forma é que toda vez que atualizarmos o R todos os pacotes serão perdidos, assim, teremos que baixá-los novamente, porém, se criarmos uma biblioteca particular o R pode ser reinstalado normalmente sem que fiquemos preocupados pois todos os nossos pacotes continuarão em nossa biblioteca particular.

Instalando pacotes em uma biblioteca particular

Crie um diretório onde deseja salvar sua biblioteca. EX: ~/Documentos/Materia_R/Biblioteca Agora vamos instalar o pacote “caTools” no diretório “~/Documentos/Biblioteca”

# Instalando um pacote em uma biblioteca
install.packages('caTools', lib = '~/Documentos/Biblioteca')

# Carregando o pacote dessa biblioteca.
library('caTools', lib = '~/Documentos/Biblioteca')

# Definindo uma biblioteca particular para instalar pacotesn na sessão em que estivermos trabalhando.
.libPaths(c('/home/jean/Documentos/Biblioteca', .libPaths()))

# Verificar as bibliotecas que o R está utilizando.
.libPaths()
## [1] "/home/jean/Documentos/Biblioteca"            
## [2] "/home/jean/R/x86_64-pc-linux-gnu-library/3.4"
## [3] "/usr/local/lib/R/site-library"               
## [4] "/usr/lib/R/site-library"                     
## [5] "/usr/lib/R/library"

Muitas vezes queremos um pacote e o mesmo não está no repositório do CRAN, então, devemos informar o repositório que o pacote está disponível.

# Instalando pacotes pelo GitHub.
# É necessário o usarname e o nome do repositório.
devtools::install_github("rstudio/shiny")
## Skipping install of 'shiny' from a github remote, the SHA1 (722b1d02) has not changed since last install.
##   Use `force = TRUE` to force installation
# Instalando pacotes que estão zipados no seu computador.
# "repos = NULL" informa a R que estamos instalando apartir da máquina local.
# install.packages("C:/caminho/para/o/arquivo/zipapo/nome-do-pacote.zip", repos = NULL)

Gerenciando pacotes instalados

Muitas vezes preciso ver quais pacotes estão instalados e em quais biblotecas. No R a função packageStatus() faz o gerenciamento dos pacotes.

packageStatus()
## Number of installed packages:
##                                               
##                                                 ok upgrade unavailable
##   /home/jean/Documentos/Biblioteca              21       0           0
##   /home/jean/R/x86_64-pc-linux-gnu-library/3.4 111       3           0
##   /usr/local/lib/R/site-library                  0       0           0
##   /usr/lib/R/site-library                        0       0           0
##   /usr/lib/R/library                            19      10           0
## 
## Number of available packages (each package counted only once):
##                                          
##                                           installed not installed
##   https://cloud.r-project.org/src/contrib       145         13522

Atualizando pacotes

Para efetuar a atualização de pacotes temos dois modos: update.packages() que que verifica quais pacotes podem ser atualizados e pergunta se queremos atualizar (y) ou (N) ou podemos cancelar a operação a qualquer momento (c). Já o comando opdate.packages(ask = FALSE) irá atualizar todos os pacotes que tem a opção de poder atualizar sem ficar perguntando pacote por pacote.

Removendo pacotes

É parecida com a forma de instalar pacotes.

remove.packages("purrr")
## Removing package from '/home/jean/Documentos/Biblioteca'
## (as 'lib' is unspecified)