Programmering

Hvordan skrive en R-pakke

Når du ser "R-pakke", kan du tenke "Noe å dele med andre mennesker." Men en R-pakke kan også være en god måte å organisere ditt eget arbeid på bare for deg selv. Og spesielt ditt fremtidige selv.

R-pakker gir deg en jevn struktur, så det er mer sannsynlig at du omformer kode til funksjoner. Og minst like viktig: Pakker gir deg en jevn måte å dokumentere hver av funksjonene dine på. Så neste år er det større sjanse for at du husker hvilke deler av koden din som gjør hva.

System oppsett

Først vil du sette opp systemet ditt. For enkel pakkeutvikling, foreslår jeg at du har installert disse bibliotekene på systemet ditt: devtools, usethis, roxygen2, testthat, knitr og rmarkdown.

Du trenger sannsynligvis også litt mer systemoppsett. I Windows installerer du programvare som heter Rtools. Det er faktisk et program, ikke en R-pakke. På en Mac er det nyttig å hente Xcode fra App Store.

Hvis du ikke er sikker på om systemet ditt er klart til å skrive pakker, har devtools en funksjon som heter has_devel () som sjekker om pakkeutviklingsmiljøet ditt er OK. Jeg foreslår at du kjører det etter at du har installert devtools.

Sharon Machlis /

Deretter kan du opprette en ny pakke i RStudio ved å gå til Fil> Nytt prosjekt> Ny katalog og velge R-pakke.

Du blir bedt om et pakkenavn og om du vil opprette et Git-arkiv (som jeg vanligvis gjør) og bruke packrat (som jeg vanligvis ikke gjør).

Vær oppmerksom på at det ble opprettet noen få filer og to kataloger nederst til høyre etter at pakken ble opprettet.

R-underkatalogen er der alle R-skriptene mine trenger å leve. Mannsmappen er for dokumentasjon - spesielt funksjon hjelpefiler. RStudio oppretter også et utvalg hei. R. R-funksjon.

Det er også et par viktige filer i hovedkatalogen. Forklarer NAMESPACE kan være en artikkel i seg selv, men nybegynnere kan stole på at devtools og bruker denne pakkene tar seg av det.

BESKRIVELSE har noen viktige nødvendige metadata om pakken, så du må fylle ut den. Det er for det meste enkle ting som pakkenavn, forfatter, beskrivelse og lisens. Det er også der pakkeavhengighetene går.

Denne pakken kan håndtere riktig pakkeavhengighetsformat for deg. Hvis du for eksempel trenger smørepakken for pakken din, kan du laste den med bibliotek (bruker dette) og løp deretter use_package ("lubridate") for å legge til en avhengighet. Du kan se hvordan dette automatisk legger til den nødvendige teksten i BESKRIVELSE filen i videoen innebygd øverst i denne artikkelen (eller ved å kjøre lignende kode på ditt eget system).

Skriv og dokumenter funksjonene dine

Deretter skriver du hvilken som helst funksjon som vanlig, og lagrer den som et R-skript i R-katalogen. Du kan navngi filen hva du vil, og du kan inkludere en eller flere funksjoner i filen.

Roxygen tilbyr en enkel måte å legge til dokumentasjon i en funksjon. Sett markøren hvor som helst i funksjonsdefinisjonen, og velg RStudio-menyalternativet Kode> Sett inn Roxygen-skjelett.

Det gir deg litt stillas for å dokumentere funksjonen på en måte som R forstår, for eksempel

# 'Tittel

#'

# '@param dag

#'

#' @komme tilbake

# '@eksport

#'

# '@eksempler

Tittelfeltet er ganske selvforklarende, og du kan også legge til en linje for en kort beskrivelse. Det er en @param linje for hvert funksjonsargument (i dette eksemplet har funksjonen ett argument kalt dag), @komme tilbake, og @eksempler. @param er der du dokumenterer hvilken datatype et argument skal være og kan gi en liten beskrivelse. @komme tilbake forteller hvilken type gjenstand som returneres. @eksempler er ikke nødvendig, men du må enten gi et eksempel eller slette standardverdien @eksempler.

For å gjøre dette stillaset til en R-pakkehjelpfil, kjør devtools :: dokument () funksjon.

Nå hvis du ser i mann-katalogen, bør du ha en Markdown-hjelpefil for den nye funksjonen din (i tillegg til en annen for standard Hallo funksjon).

Sharon Machlis,

Du kan bygge pakken ved å bruke fanen RStudio Build. Alternativet Installer og start på nytt er bra når du er midt i arbeidet med koden din. Når du vil bygge den for deling, inkludert å få en kildefil eller binær fil, sjekk ut rullegardinmenyen Mer i kategorien Bygg.

Løpe hjelp (pakke = "yourpackagename") for å få hjelpefilen for den nye funksjonen.

Hvis du vil skrive en pakkevignett, kjører du denne pakken bruk_vignett () funksjon for å sette opp det. Ta med navnet på vignetten du vil ha som argument, for eksempel bruker dette :: use_vignette ("Intro"). Du bør se en standardvignett, der du kan fylle ut vignettens tittel og forklaringstekst.

Forhåpentligvis er det nok til å overbevise deg om at det er ganske enkelt å skrive en grunnleggende R-pakke! Det er mye mer du kan gjøre, som å legge til enhetstester med test det.

Hvis du vil lære mer om testing, kan du sjekke ut mitt tidligere gjør mer med R-innlegg "Test koden din med test." Og Hadley Wickham har en hel bok om skrivepakker, tilgjengelig gratis online på r-pkgs.had.co.nz, selv om den er litt utdatert nå. Jenny Bryan hos RStudio jobber med Wickham om en oppdatering. Du kan se litt av arbeidet som pågår på r-pkgs.org.

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