ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Costruire un package R con RStudio
Nicola Procopio
08 – 05 – 2019
2
Obiettivi e pubblico di riferimento
Data Drillers, 29/03/2018
La guida si pone come obiettivo quello di essere un memorandum molto snello della
procedura per creare un package i R, conscio che esistono guide ottime e approfondite
oltre che tutorial video.
Il lettore di riferimento è lo sviluppatore R, ovvero chi già conosce il linguaggio e lo utilizza
abitualmente per creare delle funzioni.
Il package può servire per consegnare un prodotto al cliente che non sia uno script, ma
una libreria completa di esempi e documentazione, oppure per rendere più ordinato il
lavoro, …
Nelle slide seguenti verrà mostrato come creare un package in 9 semplici step.
3
Step 1: installare i package
Data Drillers, 29/03/2018
Per poter costruire dei package la prima cosa è installare i package:
• devtools
• roxygen2
• latexpdf
Inoltre bisogna avere installato LaTex [http://www.lorenzopantieri.net/LaTeX.html] sul proprio PC,
consiglio di installare direttamente MikTex [https://miktex.org/]
4
Step 2: caricare la workspace
Data Drillers, 29/03/2018
Una volta implementate le funzioni e i dati che vogliamo inserire nella nostra libreria li
carichiamo sulla workspace di RStudio.
Il mio consiglio è di creare
due versioni degli script,
una commentata che
conserveremo (per
«riprendere» il codice in
caso di eventuali
aggiornamenti in futuro) e
una pulita dai commenti da
caricare nella workspace,
così di ridurre al minimo gli
errori dovuti ai caratteri non
ASCII in fase di check del
package
5
Step 3: package.skeleton
Data Drillers, 29/03/2018
Il comando package.skeleton() prende tutto quello che sta nella workspace e crea una
cartella con la struttura di una libreria R.
I parametri (minimi) da dare sono il nome della libreria, la cartella dove inserire quanto
creato:
• package.skeleton(name = "miaLibreria", path = "R/")
6
Step 4: compilare la documentazione
Data Drillers, 29/03/2018
Il passo più noioso nel creare il package ma fondamentale, nella cartella creata troverete i
seguenti file e sottocartelle.
Data: contiene il file dati che avevamo caricato
man: la documentazione di dati e funzioni
R: contiene gli script delle funzioni
DESCRIPTION: il file descrittivo del pacchetto (nome,
descrizione, autore, dipendenze, …)
NAMESPACE: cosa bisogna importare ed esportare
Read-and-delete-me: i passi da seguire per la costruzione
7
Step 4.1: DESCRIPTION
Data Drillers, 29/03/2018
Bisogna compilare:
• Title
• Author
• Mainteiner: inserite la vostra e-mail tra < >
• Description
• License: per ora ho sempre usato GPL-3
[https://www.gnu.org/licenses/gpl-3.0.en.html]
Se il vostro package utilizza altri
package inserire tra Description
e License:
• Imports
• Depends
Es. Imports: dplyr
8
Step 4.2: NAMESPACE
Data Drillers, 29/03/2018
NAMESPACE è un file testuale che si presenta con una sola riga:
exportPattern("^[[:alpha:]]+")
Qui bisogna inserire cosa vogliamo esportare dal package e cosa
importare per farlo funzionare.
Le stringhe da inserire sono le seguenti:
• export() per le funzioni che abbiamo scritto.
Es. export(deg2num)
• import() se ci serve importare un intero package.
Es. import(dplyr)
• importFrom() se vogliamo una specifica funzione.
Es. importFrom(dplyr, left_join)
se ci servono più funzioni và scritta una riga per ogni funzione.
• useDynLib() per importare funzioni da C.
Es. useDynLib(testthat, reassign_function)
9
Step 4.3: documentazione delle funzioni
Data Drillers, 29/03/2018
Per ogni funzione esportata e
dati bisogna compilare la
documentazione.
Fare attenzione sempre ai
caratteri non ASCII, tipo lettere
accentate e alla sezione
example.
Inserite il codice di esempio
preceduto da # così R lo vedrà
come commento e non
cercherà di compilarlo.
10
Step 5: R CMD build
Data Drillers, 29/03/2018
Fatti i passi precedenti possiamo eliminare il file Read-and-delete-me.
Su RStudio andare sul terminale e posizionarsi nella cartella contenente lo scheletro del
pacchetto (la cartella R che contiene la sotto-cartella miaLibreria nell’esempio).
Per costruire il package (file tar.gz), si lanci il comando build seguito dal nome della libreria
(miaLibreria nell'esempio)
11
Step 6: R CMD check
Data Drillers, 29/03/2018
Una volta creata miaLibreria_1.0.tar.gz non resta che posizionarci nella cartella che la
contiene e fare check del file.
La procedura crea una cartella Rcheck:
• Se la procedura non và a buon fine possiamo rileggere gli errori nel log 00check
• Se la procedura và a buon fine troveremo all’interno la versione pdf del manuale
12
Step 7: installazione del pacchetto
Data Drillers, 29/03/2018
Per installare e usare il pacchetto, da console di RStudio dare i comandi:
• install.packages("R/miaLibreria_1.0.tar.gz", type = "source", repos = NULL,
dependencies = TRUE)
• library(miaLibreria)
• help(miaLibreria)
Per maggiori approfondimenti sulla costruzione dei package R vi consiglio:
• Il testo «R packages» [http://r-pkgs.had.co.nz/]
• Il tutorial youtube «Create an R package with RStudio»
[https://www.youtube.com/watch?v=9PyQlbAEujY&t=685s]
Pisa
Via Forti Umberto, 1
56121 Pisa (PI)
Tel: +39 050 9655012
Rome
Via Giovanni Squarcina, 3
00143 Roma, Italy
Tel: +39.06.58230391
Fax: +39.06.58230391
Rende
Via Pedro Alvares Cabral, 6
87036 Rende (CS)
Tel: +39 0984 395257
Where we are
Milan
Corso Sempione, 62
20149 Milano (M))

More Related Content

Create R package with RStudio

  • 1. Costruire un package R con RStudio Nicola Procopio 08 – 05 – 2019
  • 2. 2 Obiettivi e pubblico di riferimento Data Drillers, 29/03/2018 La guida si pone come obiettivo quello di essere un memorandum molto snello della procedura per creare un package i R, conscio che esistono guide ottime e approfondite oltre che tutorial video. Il lettore di riferimento è lo sviluppatore R, ovvero chi già conosce il linguaggio e lo utilizza abitualmente per creare delle funzioni. Il package può servire per consegnare un prodotto al cliente che non sia uno script, ma una libreria completa di esempi e documentazione, oppure per rendere più ordinato il lavoro, … Nelle slide seguenti verrà mostrato come creare un package in 9 semplici step.
  • 3. 3 Step 1: installare i package Data Drillers, 29/03/2018 Per poter costruire dei package la prima cosa è installare i package: • devtools • roxygen2 • latexpdf Inoltre bisogna avere installato LaTex [http://www.lorenzopantieri.net/LaTeX.html] sul proprio PC, consiglio di installare direttamente MikTex [https://miktex.org/]
  • 4. 4 Step 2: caricare la workspace Data Drillers, 29/03/2018 Una volta implementate le funzioni e i dati che vogliamo inserire nella nostra libreria li carichiamo sulla workspace di RStudio. Il mio consiglio è di creare due versioni degli script, una commentata che conserveremo (per «riprendere» il codice in caso di eventuali aggiornamenti in futuro) e una pulita dai commenti da caricare nella workspace, così di ridurre al minimo gli errori dovuti ai caratteri non ASCII in fase di check del package
  • 5. 5 Step 3: package.skeleton Data Drillers, 29/03/2018 Il comando package.skeleton() prende tutto quello che sta nella workspace e crea una cartella con la struttura di una libreria R. I parametri (minimi) da dare sono il nome della libreria, la cartella dove inserire quanto creato: • package.skeleton(name = "miaLibreria", path = "R/")
  • 6. 6 Step 4: compilare la documentazione Data Drillers, 29/03/2018 Il passo più noioso nel creare il package ma fondamentale, nella cartella creata troverete i seguenti file e sottocartelle. Data: contiene il file dati che avevamo caricato man: la documentazione di dati e funzioni R: contiene gli script delle funzioni DESCRIPTION: il file descrittivo del pacchetto (nome, descrizione, autore, dipendenze, …) NAMESPACE: cosa bisogna importare ed esportare Read-and-delete-me: i passi da seguire per la costruzione
  • 7. 7 Step 4.1: DESCRIPTION Data Drillers, 29/03/2018 Bisogna compilare: • Title • Author • Mainteiner: inserite la vostra e-mail tra < > • Description • License: per ora ho sempre usato GPL-3 [https://www.gnu.org/licenses/gpl-3.0.en.html] Se il vostro package utilizza altri package inserire tra Description e License: • Imports • Depends Es. Imports: dplyr
  • 8. 8 Step 4.2: NAMESPACE Data Drillers, 29/03/2018 NAMESPACE è un file testuale che si presenta con una sola riga: exportPattern("^[[:alpha:]]+") Qui bisogna inserire cosa vogliamo esportare dal package e cosa importare per farlo funzionare. Le stringhe da inserire sono le seguenti: • export() per le funzioni che abbiamo scritto. Es. export(deg2num) • import() se ci serve importare un intero package. Es. import(dplyr) • importFrom() se vogliamo una specifica funzione. Es. importFrom(dplyr, left_join) se ci servono più funzioni và scritta una riga per ogni funzione. • useDynLib() per importare funzioni da C. Es. useDynLib(testthat, reassign_function)
  • 9. 9 Step 4.3: documentazione delle funzioni Data Drillers, 29/03/2018 Per ogni funzione esportata e dati bisogna compilare la documentazione. Fare attenzione sempre ai caratteri non ASCII, tipo lettere accentate e alla sezione example. Inserite il codice di esempio preceduto da # così R lo vedrà come commento e non cercherà di compilarlo.
  • 10. 10 Step 5: R CMD build Data Drillers, 29/03/2018 Fatti i passi precedenti possiamo eliminare il file Read-and-delete-me. Su RStudio andare sul terminale e posizionarsi nella cartella contenente lo scheletro del pacchetto (la cartella R che contiene la sotto-cartella miaLibreria nell’esempio). Per costruire il package (file tar.gz), si lanci il comando build seguito dal nome della libreria (miaLibreria nell'esempio)
  • 11. 11 Step 6: R CMD check Data Drillers, 29/03/2018 Una volta creata miaLibreria_1.0.tar.gz non resta che posizionarci nella cartella che la contiene e fare check del file. La procedura crea una cartella Rcheck: • Se la procedura non và a buon fine possiamo rileggere gli errori nel log 00check • Se la procedura và a buon fine troveremo all’interno la versione pdf del manuale
  • 12. 12 Step 7: installazione del pacchetto Data Drillers, 29/03/2018 Per installare e usare il pacchetto, da console di RStudio dare i comandi: • install.packages("R/miaLibreria_1.0.tar.gz", type = "source", repos = NULL, dependencies = TRUE) • library(miaLibreria) • help(miaLibreria) Per maggiori approfondimenti sulla costruzione dei package R vi consiglio: • Il testo «R packages» [http://r-pkgs.had.co.nz/] • Il tutorial youtube «Create an R package with RStudio» [https://www.youtube.com/watch?v=9PyQlbAEujY&t=685s]
  • 13. Pisa Via Forti Umberto, 1 56121 Pisa (PI) Tel: +39 050 9655012 Rome Via Giovanni Squarcina, 3 00143 Roma, Italy Tel: +39.06.58230391 Fax: +39.06.58230391 Rende Via Pedro Alvares Cabral, 6 87036 Rende (CS) Tel: +39 0984 395257 Where we are Milan Corso Sempione, 62 20149 Milano (M))