18 outubro, 2021

Selo DC

Introdução

  • Um pacote R representa uma estrutura de arquivos e subdiretórios, dos quais armazenam códigos em R, para que estes possam ser:
    • Otimizados;
    • Compartilhados;
    • submetidos ao CRAN;
    • etc;
  • Toda a base nativa de funções do R, é desenvolvida dentro pacotes, bem como todas as outras funções;
  • No R, o conceito de biblioteca não é o mesmo que pacote;

O que é necessário para desenvolver pacotes R

Conhecendo a estrutura básica de um pacote

Criando o pacote pelo RStudio

R/aritmetica.R

# Operacoes basicas da matematica
aritmetica <- function (a, b, op) {
           # op: divisi, multi, soma, subtra
           if (op == "divisi") x <- divisi(a, b)
           if (op == "multi") x <- multi(a,b)
           if (op == "soma") x <- soma(a,b)
           if (op == "subtra") x <- subtra(a,b)
           return(x)
         }

R/auxiliar.R

soma <- function (a, b) { # Soma
          calculo <- a + b
          return(calculo)}
subtra <- function (a, b) { #Subtracao
            calculo <- a - b
            return(calculo)}
multi <- function (a, b) { # Multiplicacao
           calculo <- a * b
           return(calculo)}
divisi <- function (a, b) { # Divisao
            calculo <- a / b
            return(calculo)}

Local para inserir aritmetica.R e auxiliar.R

Editando o arquivo DESCRIPTION

Editando o arquivo DESCRIPTION

Package: meupacote
Type: Package
Title: Funcoes Aritmeticas Basicas
Version: 1.0
Date: 2021-10-18
Author: Ben Deivide
Maintainer: Ben Deivide <ben.deivide@ufsj.edu.br>
Description: Este pacote realiza operacoes aritmeticas basicas utilizando dois numeros.
License: GPL (>= 2)
Encoding: UTF-8
RoxygenNote: 7.1.2

Abrindo o arquivo NAMESPACE

exportPattern("^[[:alpha:]]+")
  • IMPORTANTE: O que nós vamos fazer é deletar o arquivo NAMESPACE;
  • Vamos deixar para que o pacote roxygen2 gere-o;

Configurando o roxygen2 no RStudio

Criando a documentação do pacote

Documentação básica do pacote

\name{meupacote-package}
\alias{meupacote-package}
\alias{meupacote}
\docType{package}
\name{aritmetica}
\alias{aritmetica}
\title{Operacoes Matematicas Basicas}
\description{
O pacote resolve operacoes como: soma, subtracao, divisao e multiplicacao.
}
\usage{
aritmetica(a, b, op)
}

Documentação básica do pacote (continuação…)

\arguments{
\item{a}{primeiro numero}
\item{b}{segundo numero}
\item{op}{operacao matematica}
}
\details{
A função \code{aritmetica} realiza as quatro operacoes basicas. A opcoes para o argumento
\code{op} sao "soma", "divisi", "multi", "subtra"
}
\examples{
aritmetica(8, 4, op = "divisi")
}

Documentação de um pacote usando o pacote roxygen2

#' Operacoes Matematicas Basicas
#'
#' \code{aritmetica} resolve operacoes como: soma, subtracao, divisao e multiplicacao.
#' @param a primeiro numero
#' @param b segundo numero
#' @param op operacao matematica
#' @return A função \code{aritmetica} realiza as quatro operacoes basicas. As opcoes 
#' para o argumento \code{op} sao "soma", "divisi", "multi", "subtra"
#' @examples
#' # Loading package
#' library(meupacote)
#' aritmetica(8, 4, op = "divisi")
# @import "nomes de pacotes importados"
# @importFrom "Pacotes" "funcoes"
#' @export
aritmetica <- function (a, b, op) {
           # op: divisi, multi, soma, subtra
           if (op == "divisi") x <- divisi(a, b)
           if (op == "multi") x <- multi(a,b)
           if (op == "soma") x <- soma(a,b)
           if (op == "subtra") x <- subtra(a,b)
           return(x)}

Atualizando o arquivo R/aritmetica.R

Organizando os arquivos do pacote

  • Antes de compilarmos o pacote, vamos excluir o arquivo NAMESPACE, e todos os arquivos Man/~.Rd
  • O diretório do pacote ficará assim:

Atualizando o pacote com o roxygen2

Checando o pacote

Submissão do pacote ao CRAN

Bons estudos!