Programiranje

Kako napisati paket R

Ko vidite "R paket", lahko pomislite "Nekaj ​​za skupno rabo z drugimi." Paket R je lahko tudi dober način za organiziranje lastnega dela samo zase. In še posebej vaš prihodnji jaz.

Paketi R vam zagotavljajo dosledno strukturo, zato je verjetneje, da boste kodo preoblikovali v funkcije. In, vsaj tako pomembno: Paketi vam omogočajo dosleden način dokumentiranja vsake vaše funkcije. Torej, naslednje leto je večja verjetnost, da se boste spomnili, kateri deli kode kaj naredijo.

Nastavitev sistema

Najprej želite nastaviti svoj sistem. Za lažji razvoj paketov predlagam, da imate v sistemu nameščene te knjižnice: devtools, usethis, roxygen2, testthat, knitr in rmarkdown.

Verjetno potrebujete tudi malo več nastavitev sistema. V operacijskem sistemu Windows namestite programsko opremo, imenovano Rtools. To je pravzaprav programska aplikacija, ne paket R. Na Macu je koristno, če Xcode dobite iz trgovine App Store.

Če niste prepričani, ali je vaš sistem pripravljen za pisanje paketov, ima devtools funkcijo imenovano has_devel () ki preverja, ali je vaše okolje za razvoj paketov v redu. Predlagam, da to zaženete po namestitvi programov za razvijanje.

Sharon Machlis /

Nato lahko v RStudio ustvarite nov paket, tako da odprete File> New Project> New Directory in izberete R Package.

Vprašani boste za ime paketa in ali želite ustvariti skladišče Git (kar ponavadi počnem) in uporabljati packrat (česar običajno ne).

Na spodnji desni plošči po ustvarjanju paketa upoštevajte, da je bilo ustvarjenih nekaj datotek in dva imenika.

V podimeniku R je mesto, kjer morajo živeti vsi moji R skripti. Mapa man je za dokumentacijo - natančneje, datoteke s pomočjo. RStudio ustvari tudi vzorec živjo.R R funkcija.

V glavnem imeniku je tudi nekaj pomembnih datotek. Pojasni NAMESPACE lahko samo po sebi članek, vendar lahko začetniki računajo na to, da bodo orodja za razvijanje in ta paket poskrbela za to.

OPIS vsebuje nekaj pomembnih zahtevanih metapodatkov o paketu, zato jih morate izpolniti. To so večinoma enostavne stvari, kot so ime paketa, avtor, opis in licenca. Tu je tudi odvisnost od paketa.

Ta paket uporabe lahko za vas obdela ustrezen format odvisnosti od paketa. Če na primer za svoj paket potrebujete paket za mazanje, ga lahko naložite s knjižnica (uporabite to) in nato teči use_package ("lubridate") da dodate odvisnost. Vidite lahko, kako to samodejno doda potrebno besedilo v OPIS v videoposnetku, vdelanem na vrhu tega članka (ali z zagonom podobne kode v vašem sistemu).

Napišite in dokumentirajte svoje funkcije

Nato napišite katero koli funkcijo kot običajno in jo shranite kot R skript v imenik R. Datoteki lahko poimenujete karkoli želite, v datoteko pa lahko vključite eno ali več funkcij.

Roxygen ponuja enostaven način dodajanja dokumentacije funkciji. Postavite kazalec kamor koli v definicijo funkcije in izberite možnost RStudio v meniju Koda> Vstavi okostje Roxygen.

Tako dobite nekaj odrov za dokumentiranje funkcije na način, ki ga R razume, na primer

# 'Naslov

#'

# '@param dan

#'

# '@ ​​vrni se

# '@export

#'

# '@primeri

Polje Naslov je precej samoumevno in lahko dodate tudi vrstico za kratek opis. Obstaja @param vrstica za vsak argument funkcije (v tem primeru ima funkcija en argument, imenovan dan), @ vrni se, in @ primeri. @param je kraj, kjer dokumentirate, kakšen tip podatkov mora biti argument, in lahko podate malo. @ vrni se pove, kateri tip predmeta se vrne. @ primeri ni potrebno, vendar morate dati primer ali izbrisati to privzeto @ primeri.

Če želite ta oder spremeniti v datoteko s pomočjo za paket R, zaženite devtools :: document () funkcijo.

Zdaj, če pogledate v imenik man, bi morali imeti datoteko pomoči Markdown za novo funkcijo (pa tudi drugo za privzeto zdravo funkcija).

Sharon Machlis,

Paket lahko sestavite na zavihku RStudio Build. Možnost Namesti in znova zaženi je dobra, ko že delaš na svoji kodi. Ko jo želite zgraditi za skupno rabo, vključno s pridobivanjem izvorne datoteke ali binarne datoteke, si oglejte spustni meni Več na zavihku Gradnja.

Teči pomoč (paket = "yourpackagename") da dobite datoteko s pomočjo za novo funkcijo.

Če želite napisati vinjeto za paket, zaženite uporabo tega paketa uporaba_vinjeta () funkcijo, da to nastavite. Kot argument vključite ime vinjete, ki jo želite, na primer usethis :: use_vignette ("Uvod"). Morala bi videti privzeto vinjeto, kjer lahko izpolnite njen naslov in besedilo obrazložitve.

Upajmo, da je to dovolj, da vas prepričam, da je zelo enostavno napisati osnovni paket R! Naredite lahko še veliko več, na primer dodajanje enotnih testov s testom.

Če želite izvedeti več o testiranju, si oglejte moj prejšnji prispevek Naredite več z R »Preizkusite svojo kodo s testthat«. In Hadley Wickham ima celo knjigo o pisanju paketov, ki je na voljo brezplačno na spletu na r-pkgs.had.co.nz, čeprav je zdaj že nekoliko zastarela. Jenny Bryan iz RStudio sodeluje z Wickhamom pri posodobitvi. Nekaj ​​dela, ki poteka, si lahko ogledate na r-pkgs.org.

$config[zx-auto] not found$config[zx-overlay] not found