Baseado no livro do Hadley.
Baseado no livro do Hadley.
devtools, roxygen2, testthat, knitrdevtools::install_github('hadley/devtools')
sudo apt-get install r-base-dev
Verifique se está tudo certo digitando devtools::has_devel().
Clicar em "Novo projeto" -> "R package" do RStudio
Essa é a estrutura mÃnima para criar um pacote.
DESCRIPTION: Metadados do pacote.NAMESPACE: Trata das interações do seu pacote com outros pacotes.R/: Pasta onde fica os códigos em Rman/: Pasta onde fica a documentaçãoxxx.Rproj: Seu projeto (não é necessário).DESCRIPTIONdevtools::numeric_version()Depends (versões de R).Authors@RImports, Suggests, e usar o ::.devtools::use_package('xxxxxx')RROrganizando funções:
Não use library(), require() nem source(), setwd(), etc. Ao invés disso, coloque dependências na documentação.
Facilmente construÃdo
Começar com #'
workflow: Adicionar documentação em roxygen -> chamar devtools::document() -> visualizar documentação com ? -> Adicionar documentação em roxygen -> …
Tags com @tag (ex: @param).
Textos:
Pacote testthat, do Hadley.
devtools::use_testthat()
Defina o que você quer testar (função e parâmetros), e o que você espera de resultado
workflow: mude códigos -> devtools::test() -> repita.
Namespace@export para fazer sua função ficar disponÃvel para o usuário via ::Quatro maneiras de incluir dados no pacote. - Binários (.RData) na pasta data/. Utilizar devtools::use_data(). - Dados utilizados internamente pelas funções em R/sysdata.rda. - Dados em texto (csv, excel, etc), na pasta inst/extdata. - Dados que não são utilizados pelo pacote em data-raw. Utilizar devtools::use_data_raw().
Documentar dados é semelhante a documentar funções, adicionando @format e @source.
Não é necessário usar @export.
#' Prices of 50,000 round cut diamonds.
#'
#' A dataset containing the prices and other attributes of almost 54,000
#' diamonds.
#'
#' @format A data frame with 53940 rows and 10 variables:
#' \describe{
#' \item{price}{price, in US dollars}
#' \item{carat}{weight of the diamond, in carats}
#' ...
#' }
#' @source \url{http://www.diamondse.info/}
"diamonds"