SlideShare une entreprise Scribd logo
1  sur  2
Télécharger pour lire hors ligne
The contents of a package can be stored on disk as a:
• source - a directory with sub-directories (as above)
• bundle - a single compressed file (.tar.gz)
• binary - a single compressed file optimized for a specific
OS
Or installed into an R library (loaded into memory during an
R session) or archived online in a repository. Use the
functions below to move between these states.
install.packages() CRAN ○
install.packages(type = "source") CRAN ○
○ ○
R CMD install ○ ○
○ ○
devtools::install() ○
devtools::build() ○ ○
devtools::install_github() github ○
devtools::load_all() ○ ○
Build & Reload (RStudio) ○ ○ ○
library() ○ ○
Internet On disk library memory
Repository
Source
Bundle
Binary
Installed
Inmemory
Package Development
with devtools Cheat Sheet
Package Structure
A package is a convention for organizing files into
directories.
This sheet shows how to work with the 7 most common
parts of an R package:
Setup ( " DESCRIPTION)
The " DESCRIPTION file describes your work and sets
up how your package will work with other packages.
# Package
" DESCRIPTION
$ R/
$ tests/
$ man/
$ vignettes/
$ data/
" NAMESPACE
You must have a DESCRIPTION file
Add the packages that yours relies on with
devtools::use_package()
Adds a package to the Imports field (or Suggests
field (if second argument is "Suggests").
%
%
Setup
Write code
Test
Document
Teach
Add data
Organize
devtools::add_build_ignore("file")
Adds file to .Rbuildignore, a list of files that will not be included
when package is built.
%
Setup ( " DESCRIPTION)
The " DESCRIPTION file describes your work and sets
up how your package will work with other packages.
You must have a DESCRIPTION file
Add the packages that yours relies on with
devtools::use_package()
Adds a package to the Imports file (default) or
Suggests field (if second argument is "Suggests").
Package: mypackage
Title: Title of Package
Version: 0.1.0
Authors@R: person("Hadley", "Wickham", email =
"hadley@me.com", role = c("aut", "cre", "cst"))
Description: What the package does (one paragraph)
Depends: R (>= 3.1.0)
License: GPL-2
LazyData: true
Imports:
dplyr (>= 0.4.0),
ggvis (>= 0.2)
Suggests:
knitr (>= 0.1.0)
Import packages that your package
must have to work. R will install
them when it installs your package.
Suggest packages that re not really
essential to yours. Users can install
them manually, or not, as they like.
Imports Suggests
%
Package: mypackage
Title: Title of Package
Version: 0.1.0
Authors@R: person("Hadley", "Wickham", email =
"hadley@me.com", role = c("aut", "cre"))
Description: What the package does (one paragraph)
Depends: R (>= 3.1.0)
License: GPL-2
LazyData: true
Imports:
dplyr (>= 0.4.0),
ggvis (>= 0.2)
Suggests:
knitr (>= 0.1.0)
MIT license applies to
your code if re-shared.
MIT
Visit r-pkgs.had.co.nz for more
%
Use $ tests/ to store unit tests that will inform you if
your code ever breaks.
Test ( $ tests/)
Add a tests/ directory and import testthat with
devtools::use_testthat()
Sets up package to use automated tests with
testthat
Write tests with context(), test(), and expectations
Save your tests as .R files in tests/testthat/
1. Modify your code or tests.
2. Test your code with one of
devtools::test()
Runs all tests saved in
$ tests/.
Ctrl/Cmd + Shift + T
(keyboard shortcut)
3. Repeat until all tests pass
Workflow
%
%
expect_equal() is equal within small numerical tolerance?
expect_identical() is exactly equal?
expect_match() matches specified string or regular expression?
expect_output() prints specified output?
expect_message() displays specified message?
expect_warning() displays specified warning?
expect_error() throws specified error?
expect_is() output inherits from certain class?
expect_false() returns FALSE?
expect_true() returns TRUE?
context("Arithmetic")
test_that("Math works", {
expect_equal(1 + 1, 2)
expect_equal(1 + 2, 3)
expect_equal(1 + 3, 4)
})
Example test
Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15
Write code ( $ R/)
All of the R code in your package goes in $ R/. A package
with just an R/ directory is still a very useful package.
Create a new package project with
devtools::create("path/to/name")
Create a template to develop into a package.
Save your code in $ R/ as scripts (extension .R)
1. Edit your code.
2. Load your code with one of
devtools::load_all()
Re-loads all saved files in $ R/ into memory.
Ctrl/Cmd + Shift + L (keyboard shortcut)
Saves all open files then calls load_all().
3. Experiment in the console.
4. Repeat.
%
%
Workflow
• Use consistent style with r-pkgs.had.co.nz/r.html#style
• Click on a function and press F2 to open its definition
• Search for a function with Ctrl + .
RStudio® is a trademark of RStudio, Inc. • All rights reserved
info@rstudio.com • 844-448-1212 • rstudio.com
Suggest packages that are not very
essential to yours. Users can install
them manually, or not, as they like.
Import packages that your package
must have to work. R will install
them when it installs your package.
GPL-2 license applies to your
code, and all code anyone
bundles with it, if re-shared.
GPL-2
No strings attached.
CC0
RStudio® is a trademark of RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15
email{name@@foo.com}
href{url}{display}
url{url}
link[=dest]{display}
linkS4class{class}
code{link{function}}
code{link[package]{function}}
tabular{lcr}{
left tab centered tab right cr
cell tab cell tab cell cr
}
emph{italic text}
strong{bold text}
code{function(args)}
pkg{package}
dontrun{code}
dontshow{code}
donttest{code}
deqn{a + b (block)}
eqn{a + b (inline)}
Document ( $ man/)
RStudio® is a trademark of RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15
Organize ( " NAMESPACE)
The " NAMESPACE file helps you make your package
self-contained: it won’t interfere with other packages,
and other packages won’t interfere with it.
Export functions for users by placing @export in their
roxygen comments
Import objects from other packages with
package::object (recommended) or @import,
@importFrom, @importClassesFrom,
@importMethodsFrom (not always recommended)
%
%
Teach ( $ vignettes/)
$ man/ contains the documentation for your functions, the help pages in your package.
Add data ( $ data/)
The $ data/ directory allows you to include data with
your package.
Store data in one of data/, R/Sysdata.rda, inst/
extdata
Always use LazyData: true in your DESCRIPTION file.
Save data as .Rdata files (suggested)
%
%
devtools::use_data()
Adds a data object to data/
(R/Sysdata.rda if internal = TRUE)
devtools::use_data_raw()
Adds an R Script used to clean a data set to data-
raw/. Includes data-raw/ on .Rbuildignore.
%
Store data in
• data/ to make data available to package users
• R/sysdata.rda to keep data internal for use by your
functions.
• inst/extdata to make raw data available for loading and
parsing examples. Access this data with system.file()
1. Modify your code or tests.
2. Document your package (devtools::document())
3. Check NAMESPACE
4. Repeat until NAMESPACE is correct
Workflow
---
title: "Vignette Title"
author: "Vignette Author"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%VignetteIndexEntry{Vignette Title}
%VignetteEngine{knitr::rmarkdown}
usepackage[utf8]{inputenc}
---
$ vignettes/ holds documents that teach your users how
to solve real problems with your tools.
Create a $ vignettes/ directory and a template vignette with
devtools::use_vignette()
Adds template vignette as vignettes/my-vignette.Rmd.
Append YAML headers to your vignettes (like right)
Write the body of your vignettes in R Markdown
(rmarkdown.rstudio.com)
%
%
%
1. Add roxygen comments in your .R files
2. Convert roxygen comments into documentation
with one of
devtools::document()
Converts roxygen comments to .Rd files and
places them in $ man/. Builds NAMESPACE.
Ctrl/Cmd + Shift + D (Keyboard Shortcut)
3. Open help pages with ? to preview documentation
4. Repeat
Workflow
Use roxygen comments to document each
function beside its definition
Document the name of each exported data set
Include helpful examples for each function
%
%
%
The roxygen package
roxygen lets you write documentation inline in your .R files
with a shorthand syntax.
• Add roxygen documentation as comment lines that begin
with #’.
• Place comment lines directly above the code that defines
the object documented.
• Place a roxygen @ tag (right) after #’ to supply a specific
section of documentation.
• Untagged lines will be used to generate a title, description,
and details section (in that order)
#' Add together two numbers.
#'
#' @param x A number.
#' @param y A number.
#' @return The sum of code{x} and code{y}.
#' @examples
#' add(1, 1)
#' @export
add <- function(x, y) {
x + y
}
.Rd formatting tags
@aliases
@concepts
@describeIn
@examples
@export
@family
@inheritParams
@keywords
@param
@rdname
@return
@section
@seealso
@format
@source
@include
@slot
@field
Common roxygen tags
data
S4
RC
Submit your package
r-pkgs.had.co.nz/release.html

Contenu connexe

Tendances

服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript
Qiangning Hong
 
DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11
Mike van Riel
 

Tendances (20)

Presentation of sexy.rgtk
Presentation of sexy.rgtkPresentation of sexy.rgtk
Presentation of sexy.rgtk
 
Going beyond Code: Driving automation with data via Hiera
Going beyond Code: Driving automation with data via HieraGoing beyond Code: Driving automation with data via Hiera
Going beyond Code: Driving automation with data via Hiera
 
Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands
 
Perl Programming - 03 Programming File
Perl Programming - 03 Programming FilePerl Programming - 03 Programming File
Perl Programming - 03 Programming File
 
Gur1009
Gur1009Gur1009
Gur1009
 
Perl for System Automation - 01 Advanced File Processing
Perl for System Automation - 01 Advanced File ProcessingPerl for System Automation - 01 Advanced File Processing
Perl for System Automation - 01 Advanced File Processing
 
Postgresql Database Administration- Day4
Postgresql Database Administration- Day4Postgresql Database Administration- Day4
Postgresql Database Administration- Day4
 
Big Data Analytics Lab File
Big Data Analytics Lab FileBig Data Analytics Lab File
Big Data Analytics Lab File
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript
 
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
 
Hadoop
HadoopHadoop
Hadoop
 
The Ring programming language version 1.5.1 book - Part 38 of 180
The Ring programming language version 1.5.1 book - Part 38 of 180The Ring programming language version 1.5.1 book - Part 38 of 180
The Ring programming language version 1.5.1 book - Part 38 of 180
 
Ldap configuration documentation
Ldap configuration documentationLdap configuration documentation
Ldap configuration documentation
 
DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11
 
2.4.1 use debian package management v2
2.4.1 use debian package management v22.4.1 use debian package management v2
2.4.1 use debian package management v2
 
Cs267 hadoop programming
Cs267 hadoop programmingCs267 hadoop programming
Cs267 hadoop programming
 
2019-01-29 - Demystifying Kotlin Coroutines
2019-01-29 - Demystifying Kotlin Coroutines2019-01-29 - Demystifying Kotlin Coroutines
2019-01-29 - Demystifying Kotlin Coroutines
 
Apache Hive Hook
Apache Hive HookApache Hive Hook
Apache Hive Hook
 
Biopython
BiopythonBiopython
Biopython
 
Lambdas and Streams Master Class Part 2
Lambdas and Streams Master Class Part 2Lambdas and Streams Master Class Part 2
Lambdas and Streams Master Class Part 2
 

Similaire à Devtools cheatsheet

R Introduction
R IntroductionR Introduction
R Introduction
schamber
 
Lex tool manual
Lex tool manualLex tool manual
Lex tool manual
Sami Said
 
Workshop presentation hands on r programming
Workshop presentation hands on r programmingWorkshop presentation hands on r programming
Workshop presentation hands on r programming
Nimrita Koul
 
r,rstats,r language,r packages
r,rstats,r language,r packagesr,rstats,r language,r packages
r,rstats,r language,r packages
Ajay Ohri
 
Reading Data into R REVISED
Reading Data into R REVISEDReading Data into R REVISED
Reading Data into R REVISED
Kazuki Yoshida
 

Similaire à Devtools cheatsheet (20)

R Introduction
R IntroductionR Introduction
R Introduction
 
R Programming: Introduction To R Packages
R Programming: Introduction To R PackagesR Programming: Introduction To R Packages
R Programming: Introduction To R Packages
 
Reproducibility with R
Reproducibility with RReproducibility with R
Reproducibility with R
 
DevTools Package Development
 DevTools Package Development DevTools Package Development
DevTools Package Development
 
1 Installing & getting started with R
1 Installing & getting started with R1 Installing & getting started with R
1 Installing & getting started with R
 
1 installing & Getting Started with R
1 installing & Getting Started with R1 installing & Getting Started with R
1 installing & Getting Started with R
 
Reproducible Computational Research in R
Reproducible Computational Research in RReproducible Computational Research in R
Reproducible Computational Research in R
 
Rmarkdown cheatsheet-2.0
Rmarkdown cheatsheet-2.0Rmarkdown cheatsheet-2.0
Rmarkdown cheatsheet-2.0
 
Having Fun with Play
Having Fun with PlayHaving Fun with Play
Having Fun with Play
 
Lex tool manual
Lex tool manualLex tool manual
Lex tool manual
 
R sharing 101
R sharing 101R sharing 101
R sharing 101
 
Workshop presentation hands on r programming
Workshop presentation hands on r programmingWorkshop presentation hands on r programming
Workshop presentation hands on r programming
 
R package development, create package documentation isabella gollini
R package development, create package documentation   isabella golliniR package development, create package documentation   isabella gollini
R package development, create package documentation isabella gollini
 
Readme
ReadmeReadme
Readme
 
Assignment 1 MapReduce With Hadoop
Assignment 1  MapReduce With HadoopAssignment 1  MapReduce With Hadoop
Assignment 1 MapReduce With Hadoop
 
BUSINESS ANALYTICS WITH R SOFTWARE DIAST
BUSINESS ANALYTICS WITH R SOFTWARE DIASTBUSINESS ANALYTICS WITH R SOFTWARE DIAST
BUSINESS ANALYTICS WITH R SOFTWARE DIAST
 
r,rstats,r language,r packages
r,rstats,r language,r packagesr,rstats,r language,r packages
r,rstats,r language,r packages
 
Reading Data into R REVISED
Reading Data into R REVISEDReading Data into R REVISED
Reading Data into R REVISED
 
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
 
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchLanguage-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible research
 

Plus de Dr. Volkan OBAN

Plus de Dr. Volkan OBAN (20)

Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
 
Covid19py Python Package - Example
Covid19py  Python Package - ExampleCovid19py  Python Package - Example
Covid19py Python Package - Example
 
Object detection with Python
Object detection with Python Object detection with Python
Object detection with Python
 
Python - Rastgele Orman(Random Forest) Parametreleri
Python - Rastgele Orman(Random Forest) ParametreleriPython - Rastgele Orman(Random Forest) Parametreleri
Python - Rastgele Orman(Random Forest) Parametreleri
 
Linear Programming wi̇th R - Examples
Linear Programming wi̇th R - ExamplesLinear Programming wi̇th R - Examples
Linear Programming wi̇th R - Examples
 
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ..."optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
 
k-means Clustering in Python
k-means Clustering in Pythonk-means Clustering in Python
k-means Clustering in Python
 
Naive Bayes Example using R
Naive Bayes Example using  R Naive Bayes Example using  R
Naive Bayes Example using R
 
R forecasting Example
R forecasting ExampleR forecasting Example
R forecasting Example
 
k-means Clustering and Custergram with R
k-means Clustering and Custergram with Rk-means Clustering and Custergram with R
k-means Clustering and Custergram with R
 
Data Science and its Relationship to Big Data and Data-Driven Decision Making
Data Science and its Relationship to Big Data and Data-Driven Decision MakingData Science and its Relationship to Big Data and Data-Driven Decision Making
Data Science and its Relationship to Big Data and Data-Driven Decision Making
 
Data Visualization with R.ggplot2 and its extensions examples.
Data Visualization with R.ggplot2 and its extensions examples.Data Visualization with R.ggplot2 and its extensions examples.
Data Visualization with R.ggplot2 and its extensions examples.
 
Scikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-PythonScikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-Python
 
Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet
 
Pandas,scipy,numpy cheatsheet
Pandas,scipy,numpy cheatsheetPandas,scipy,numpy cheatsheet
Pandas,scipy,numpy cheatsheet
 
ReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an exampleReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an example
 
ReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an exampleReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an example
 
R-ggplot2 package Examples
R-ggplot2 package ExamplesR-ggplot2 package Examples
R-ggplot2 package Examples
 
R Machine Learning packages( generally used)
R Machine Learning packages( generally used)R Machine Learning packages( generally used)
R Machine Learning packages( generally used)
 
treemap package in R and examples.
treemap package in R and examples.treemap package in R and examples.
treemap package in R and examples.
 

Dernier

怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制
怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制
怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制
vexqp
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
nirzagarg
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
gajnagarg
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
nirzagarg
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
ahmedjiabur940
 
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling ManjurJual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
ptikerjasaptiker
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
ranjankumarbehera14
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
gajnagarg
 
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
vexqp
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
q6pzkpark
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
chadhar227
 

Dernier (20)

7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt
 
怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制
怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制
怎样办理伦敦大学城市学院毕业证(CITY毕业证书)成绩单学校原版复制
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
 
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATIONCapstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
 
SR-101-01012024-EN.docx Federal Constitution of the Swiss Confederation
SR-101-01012024-EN.docx  Federal Constitution  of the Swiss ConfederationSR-101-01012024-EN.docx  Federal Constitution  of the Swiss Confederation
SR-101-01012024-EN.docx Federal Constitution of the Swiss Confederation
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubai
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........
 
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling ManjurJual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
 
Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
 

Devtools cheatsheet

  • 1. The contents of a package can be stored on disk as a: • source - a directory with sub-directories (as above) • bundle - a single compressed file (.tar.gz) • binary - a single compressed file optimized for a specific OS Or installed into an R library (loaded into memory during an R session) or archived online in a repository. Use the functions below to move between these states. install.packages() CRAN ○ install.packages(type = "source") CRAN ○ ○ ○ R CMD install ○ ○ ○ ○ devtools::install() ○ devtools::build() ○ ○ devtools::install_github() github ○ devtools::load_all() ○ ○ Build & Reload (RStudio) ○ ○ ○ library() ○ ○ Internet On disk library memory Repository Source Bundle Binary Installed Inmemory Package Development with devtools Cheat Sheet Package Structure A package is a convention for organizing files into directories. This sheet shows how to work with the 7 most common parts of an R package: Setup ( " DESCRIPTION) The " DESCRIPTION file describes your work and sets up how your package will work with other packages. # Package " DESCRIPTION $ R/ $ tests/ $ man/ $ vignettes/ $ data/ " NAMESPACE You must have a DESCRIPTION file Add the packages that yours relies on with devtools::use_package() Adds a package to the Imports field (or Suggests field (if second argument is "Suggests"). % % Setup Write code Test Document Teach Add data Organize devtools::add_build_ignore("file") Adds file to .Rbuildignore, a list of files that will not be included when package is built. % Setup ( " DESCRIPTION) The " DESCRIPTION file describes your work and sets up how your package will work with other packages. You must have a DESCRIPTION file Add the packages that yours relies on with devtools::use_package() Adds a package to the Imports file (default) or Suggests field (if second argument is "Suggests"). Package: mypackage Title: Title of Package Version: 0.1.0 Authors@R: person("Hadley", "Wickham", email = "hadley@me.com", role = c("aut", "cre", "cst")) Description: What the package does (one paragraph) Depends: R (>= 3.1.0) License: GPL-2 LazyData: true Imports: dplyr (>= 0.4.0), ggvis (>= 0.2) Suggests: knitr (>= 0.1.0) Import packages that your package must have to work. R will install them when it installs your package. Suggest packages that re not really essential to yours. Users can install them manually, or not, as they like. Imports Suggests % Package: mypackage Title: Title of Package Version: 0.1.0 Authors@R: person("Hadley", "Wickham", email = "hadley@me.com", role = c("aut", "cre")) Description: What the package does (one paragraph) Depends: R (>= 3.1.0) License: GPL-2 LazyData: true Imports: dplyr (>= 0.4.0), ggvis (>= 0.2) Suggests: knitr (>= 0.1.0) MIT license applies to your code if re-shared. MIT Visit r-pkgs.had.co.nz for more % Use $ tests/ to store unit tests that will inform you if your code ever breaks. Test ( $ tests/) Add a tests/ directory and import testthat with devtools::use_testthat() Sets up package to use automated tests with testthat Write tests with context(), test(), and expectations Save your tests as .R files in tests/testthat/ 1. Modify your code or tests. 2. Test your code with one of devtools::test() Runs all tests saved in $ tests/. Ctrl/Cmd + Shift + T (keyboard shortcut) 3. Repeat until all tests pass Workflow % % expect_equal() is equal within small numerical tolerance? expect_identical() is exactly equal? expect_match() matches specified string or regular expression? expect_output() prints specified output? expect_message() displays specified message? expect_warning() displays specified warning? expect_error() throws specified error? expect_is() output inherits from certain class? expect_false() returns FALSE? expect_true() returns TRUE? context("Arithmetic") test_that("Math works", { expect_equal(1 + 1, 2) expect_equal(1 + 2, 3) expect_equal(1 + 3, 4) }) Example test Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15 Write code ( $ R/) All of the R code in your package goes in $ R/. A package with just an R/ directory is still a very useful package. Create a new package project with devtools::create("path/to/name") Create a template to develop into a package. Save your code in $ R/ as scripts (extension .R) 1. Edit your code. 2. Load your code with one of devtools::load_all() Re-loads all saved files in $ R/ into memory. Ctrl/Cmd + Shift + L (keyboard shortcut) Saves all open files then calls load_all(). 3. Experiment in the console. 4. Repeat. % % Workflow • Use consistent style with r-pkgs.had.co.nz/r.html#style • Click on a function and press F2 to open its definition • Search for a function with Ctrl + . RStudio® is a trademark of RStudio, Inc. • All rights reserved info@rstudio.com • 844-448-1212 • rstudio.com Suggest packages that are not very essential to yours. Users can install them manually, or not, as they like. Import packages that your package must have to work. R will install them when it installs your package. GPL-2 license applies to your code, and all code anyone bundles with it, if re-shared. GPL-2 No strings attached. CC0 RStudio® is a trademark of RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15
  • 2. email{name@@foo.com} href{url}{display} url{url} link[=dest]{display} linkS4class{class} code{link{function}} code{link[package]{function}} tabular{lcr}{ left tab centered tab right cr cell tab cell tab cell cr } emph{italic text} strong{bold text} code{function(args)} pkg{package} dontrun{code} dontshow{code} donttest{code} deqn{a + b (block)} eqn{a + b (inline)} Document ( $ man/) RStudio® is a trademark of RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15 Organize ( " NAMESPACE) The " NAMESPACE file helps you make your package self-contained: it won’t interfere with other packages, and other packages won’t interfere with it. Export functions for users by placing @export in their roxygen comments Import objects from other packages with package::object (recommended) or @import, @importFrom, @importClassesFrom, @importMethodsFrom (not always recommended) % % Teach ( $ vignettes/) $ man/ contains the documentation for your functions, the help pages in your package. Add data ( $ data/) The $ data/ directory allows you to include data with your package. Store data in one of data/, R/Sysdata.rda, inst/ extdata Always use LazyData: true in your DESCRIPTION file. Save data as .Rdata files (suggested) % % devtools::use_data() Adds a data object to data/ (R/Sysdata.rda if internal = TRUE) devtools::use_data_raw() Adds an R Script used to clean a data set to data- raw/. Includes data-raw/ on .Rbuildignore. % Store data in • data/ to make data available to package users • R/sysdata.rda to keep data internal for use by your functions. • inst/extdata to make raw data available for loading and parsing examples. Access this data with system.file() 1. Modify your code or tests. 2. Document your package (devtools::document()) 3. Check NAMESPACE 4. Repeat until NAMESPACE is correct Workflow --- title: "Vignette Title" author: "Vignette Author" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %VignetteIndexEntry{Vignette Title} %VignetteEngine{knitr::rmarkdown} usepackage[utf8]{inputenc} --- $ vignettes/ holds documents that teach your users how to solve real problems with your tools. Create a $ vignettes/ directory and a template vignette with devtools::use_vignette() Adds template vignette as vignettes/my-vignette.Rmd. Append YAML headers to your vignettes (like right) Write the body of your vignettes in R Markdown (rmarkdown.rstudio.com) % % % 1. Add roxygen comments in your .R files 2. Convert roxygen comments into documentation with one of devtools::document() Converts roxygen comments to .Rd files and places them in $ man/. Builds NAMESPACE. Ctrl/Cmd + Shift + D (Keyboard Shortcut) 3. Open help pages with ? to preview documentation 4. Repeat Workflow Use roxygen comments to document each function beside its definition Document the name of each exported data set Include helpful examples for each function % % % The roxygen package roxygen lets you write documentation inline in your .R files with a shorthand syntax. • Add roxygen documentation as comment lines that begin with #’. • Place comment lines directly above the code that defines the object documented. • Place a roxygen @ tag (right) after #’ to supply a specific section of documentation. • Untagged lines will be used to generate a title, description, and details section (in that order) #' Add together two numbers. #' #' @param x A number. #' @param y A number. #' @return The sum of code{x} and code{y}. #' @examples #' add(1, 1) #' @export add <- function(x, y) { x + y } .Rd formatting tags @aliases @concepts @describeIn @examples @export @family @inheritParams @keywords @param @rdname @return @section @seealso @format @source @include @slot @field Common roxygen tags data S4 RC Submit your package r-pkgs.had.co.nz/release.html