intervento nell'ambito di una giornata in cui gli studenti dell'ultimo anno del CdL in Statistica dell'UniCal hanno visitato l'azienda.
Spiega in maniera sintetica i passi da seguire per creare un package R.
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))