Προγραμματισμός

Πώς να γράψετε ένα πακέτο R

Όταν βλέπετε το "πακέτο R", μπορεί να σκεφτείτε "Κάτι για κοινή χρήση με άλλα άτομα". Αλλά ένα πακέτο R μπορεί επίσης να είναι ένας καλός τρόπος για να οργανώσετε τη δική σας εργασία μόνο για τον εαυτό σου. Και ειδικά ο μελλοντικός σας εαυτός.

Τα πακέτα R σας δίνουν μια συνεπή δομή, οπότε είναι πιο πιθανό να αναδιαμορφώσετε τον κώδικα σε συναρτήσεις. Και, τουλάχιστον εξίσου σημαντικό: Τα πακέτα σάς δίνουν έναν συνεπή τρόπο τεκμηρίωσης καθεμιάς από τις λειτουργίες σας. Έτσι, τον επόμενο χρόνο, υπάρχει μια καλύτερη πιθανότητα να θυμάστε ποια μέρη του κώδικα σας κάνουν τι.

Εγκατάσταση συστήματος

Πρώτον, θέλετε να ρυθμίσετε το σύστημά σας. Για εύκολη ανάπτυξη πακέτων, προτείνω να βεβαιωθείτε ότι έχετε εγκαταστήσει αυτές τις βιβλιοθήκες στο σύστημά σας: devtools, usethis, roxygen2, testthat, knitr και rmarkdown.

Ίσως χρειάζεστε λίγο περισσότερη εγκατάσταση συστήματος επίσης. Στα Windows, εγκαταστήστε λογισμικό που ονομάζεται Rtools. Αυτό είναι στην πραγματικότητα μια εφαρμογή λογισμικού, όχι ένα πακέτο R. Σε Mac, είναι χρήσιμο να λάβετε Xcode από το App Store.

Εάν δεν είστε σίγουροι εάν το σύστημά σας είναι έτοιμο να γράψει πακέτα, το devtools έχει μια λειτουργία που ονομάζεται has_devel () που ελέγχει εάν το περιβάλλον ανάπτυξης πακέτων είναι εντάξει. Προτείνω να το εκτελέσετε αφού έχετε εγκαταστήσει τα devtools.

Sharon Machlis /

Στη συνέχεια, μπορείτε να δημιουργήσετε ένα νέο πακέτο στο RStudio μεταβαίνοντας στο File> New Project> New Directory και επιλέγοντας R Package.

Θα σας ζητηθεί ένα όνομα πακέτου και αν θέλετε να δημιουργήσετε ένα αποθετήριο Git (το οποίο συνήθως κάνω) και να χρησιμοποιήσετε το packrat (το οποίο συνήθως δεν το κάνω).

Στο κάτω δεξιό πλαίσιο μετά τη δημιουργία του πακέτου, σημειώστε ότι δημιουργήθηκαν μερικά αρχεία και δύο κατάλογοι.

Ο υποκατάλογος R είναι όπου όλα τα σενάρια R πρέπει να ζουν. Ο φάκελος man προορίζεται για τεκμηρίωση — συγκεκριμένα, αρχεία βοήθειας λειτουργίας. Το RStudio δημιουργεί επίσης ένα δείγμα γεια. Ρ Συνάρτηση R.

Υπάρχουν επίσης μερικά σημαντικά αρχεία στον κύριο κατάλογο. Εξηγώντας ΟΝΟΜΑΣΙΑ θα μπορούσε να είναι ένα άρθρο από μόνο του, αλλά οι αρχάριοι μπορούν να βασίζονται στα devtools και χρησιμοποιεί αυτά τα πακέτα που το φροντίζουν.

ΠΕΡΙΓΡΑΦΗ έχει ορισμένα σημαντικά απαιτούμενα μεταδεδομένα σχετικά με το πακέτο, οπότε πρέπει να το συμπληρώσετε. Είναι κυρίως εύκολα πράγματα όπως το όνομα του πακέτου, ο συντάκτης, η περιγραφή και η άδεια. Είναι επίσης πού πηγαίνουν οι εξαρτήσεις πακέτων.

Το πακέτο usethis μπορεί να χειριστεί τη σωστή μορφή εξάρτησης πακέτου για εσάς. Για παράδειγμα, εάν χρειάζεστε το πακέτο λιπαντικών για το πακέτο σας, μπορείτε να το φορτώσετε βιβλιοθήκη (usethis) και μετά τρέξε use_package ("λιπαντικό") για να προσθέσετε μια εξάρτηση. Μπορείτε να δείτε πώς αυτό προσθέτει αυτόματα το απαραίτητο κείμενο στο ΠΕΡΙΓΡΑΦΗ αρχείο στο βίντεο που είναι ενσωματωμένο στην κορυφή αυτού του άρθρου (ή εκτελώντας παρόμοιο κώδικα στο δικό σας σύστημα).

Γράψτε και τεκμηριώστε τις λειτουργίες σας

Στη συνέχεια, γράψτε οποιαδήποτε λειτουργία ως συνήθως και αποθηκεύστε την ως σενάριο R στον κατάλογο R. Μπορείτε να ονομάσετε το αρχείο οτιδήποτε θέλετε και μπορείτε να συμπεριλάβετε μία ή περισσότερες λειτουργίες στο αρχείο.

Το Roxygen προσφέρει έναν εύκολο τρόπο προσθήκης τεκμηρίωσης σε μια λειτουργία. Τοποθετήστε τον κέρσορα οπουδήποτε στον ορισμό της λειτουργίας και επιλέξτε την επιλογή μενού RStudio Κωδικός> Εισαγωγή Roxygen Skeleton.

Αυτό σας δίνει κάποια ικριώματα για να τεκμηριώσετε τη λειτουργία με τρόπο που ο R κατανοεί, όπως

#' Τίτλος

#'

# '@ ​​ημέρα Παρασκευής

#'

#' @ΕΠΙΣΤΡΟΦΗ

# '@ ​​εξαγωγή

#'

# '@ ​​παραδείγματα

Το πεδίο Τίτλος είναι αρκετά αυτονόητο και μπορείτε επίσης να προσθέσετε μια γραμμή για μια σύντομη περιγραφή. Υπάρχει ένα @παράμ γραμμή για κάθε όρισμα συνάρτησης (σε αυτό το παράδειγμα, η συνάρτηση έχει ένα όρισμα που ονομάζεται ημέρα), @ΕΠΙΣΤΡΟΦΗ, και @ παραδείγματα. @παράμ είναι όπου τεκμηριώνετε τι τύπο δεδομένων πρέπει να είναι ένα όρισμα και μπορεί να δώσει μια μικρή περιγραφή. @ΕΠΙΣΤΡΟΦΗ λέει τι είδους αντικείμενο επιστρέφεται. @ παραδείγματα δεν απαιτείται, αλλά πρέπει να δώσετε ένα παράδειγμα ή να διαγράψετε αυτήν την προεπιλογή @ παραδείγματα.

Για να μετατρέψετε αυτό το ικρίωμα σε ένα αρχείο βοήθειας πακέτου R, εκτελέστε το devtools :: έγγραφο () λειτουργία.

Τώρα εάν κοιτάξετε στον κατάλογο man, θα πρέπει να έχετε ένα αρχείο βοήθειας Markdown για τη νέα σας λειτουργία (καθώς και ένα άλλο για την προεπιλεγμένη γεια λειτουργία).

Sharon Machlis,

Μπορείτε να δημιουργήσετε το πακέτο χρησιμοποιώντας την καρτέλα RStudio Build. Η επιλογή "Εγκατάσταση και επανεκκίνηση" είναι καλή για όταν εργάζεστε στον κώδικά σας. Όταν θέλετε να το δημιουργήσετε για κοινή χρήση, συμπεριλαμβανομένης της λήψης ενός αρχείου προέλευσης ή ενός δυαδικού αρχείου, ρίξτε μια ματιά στο αναπτυσσόμενο μενού Περισσότερα στην καρτέλα Δημιουργία.

Τρέξιμο βοήθεια (πακέτο = "yourpackagename") για να λάβετε το αρχείο βοήθειας για τη νέα λειτουργία.

Αν θέλετε να γράψετε ένα πακέτο βινιέτα, εκτελέστε το πακέτο use_vignette () λειτουργία για να το ρυθμίσετε. Συμπεριλάβετε το όνομα της βινιέτας που θέλετε ως όρισμα, όπως usethis :: use_vignette ("Εισαγωγή"). Θα πρέπει να δείτε ένα προεπιλεγμένο σύντομο χρονογράφημα, όπου μπορείτε να συμπληρώσετε τον τίτλο και το επεξηγηματικό κείμενο.

Ας ελπίσουμε ότι αυτό είναι αρκετό για να σας πείσει ότι είναι πολύ εύκολο να γράψετε ένα βασικό πακέτο R! Υπάρχουν πολλά περισσότερα που μπορείτε να κάνετε, όπως η προσθήκη σε δοκιμές μονάδας με testthat.

Αν θέλετε να μάθετε περισσότερα σχετικά με τις δοκιμές, ανατρέξτε στην προηγούμενη ανάρτηση Do More With R "Δοκιμάστε τον κωδικό σας με testthat". Και ο Hadley Wickham διαθέτει ένα ολόκληρο βιβλίο σχετικά με τη συγγραφή πακέτων, διαθέσιμο δωρεάν online στο r-pkgs.had.co.nz, αν και είναι λίγο ξεπερασμένο τώρα. Η Jenny Bryan στο RStudio συνεργάζεται με τον Wickham σε μια ενημέρωση. Μπορείτε να δείτε λίγο από τις εργασίες που βρίσκονται σε εξέλιξη στο r-pkgs.org.