Programavimas

Kaip parašyti R paketą

Kai pamatysite „R paketą“, galite pagalvoti „Kuo pasidalinti su kitais žmonėmis“. Tačiau R paketas taip pat gali būti geras būdas organizuoti savo darbą tik sau. O ypač tavo būsimasis aš.

R paketai suteikia jums pastovią struktūrą, todėl labiau tikėtina, kad pakeisite kodą į funkcijas. Ir bent jau taip svarbu: paketai suteikia jums nuoseklų būdą dokumentuoti kiekvieną savo funkciją. Taigi kitais metais yra didesnė tikimybė, kad prisiminsite, kurios kodo dalys ką daro.

Sistemos sąranka

Pirmiausia norite nustatyti savo sistemą. Kad galėtumėte lengvai kurti paketus, siūlau įsitikinti, kad jūsų bibliotekoje įdiegtos šios bibliotekos: devtools, usethis, roxygen2, testthat, knitr ir rmarkdown.

Jums tikriausiai taip pat reikia šiek tiek daugiau sistemos sąrankos. „Windows“ sistemoje įdiekite programinę įrangą, vadinamą „Rtools“. Tai iš tikrųjų yra programinė įranga, o ne R paketas. „Mac“ sistemoje naudinga gauti „Xcode“ iš „App Store“.

Jei nesate tikri, ar jūsų sistema yra pasirengusi rašyti paketus, „devtools“ turi funkciją, vadinamą has_devel () patikrina, ar jūsų paketų kūrimo aplinka yra tinkama. Siūlau tai paleisti įdiegus devtools.

Sharon Machlis /

Tada galite sukurti naują paketą „RStudio“ eidami į Failas> Naujas projektas> Naujas katalogas ir pasirinkdami R paketą.

Jūsų prašoma nurodyti paketo pavadinimą ir tai, ar norite sukurti „Git“ saugyklą (ką aš dažniausiai darau) ir naudoti „packrat“ (ko aš paprastai nenaudoju).

Apatiniame dešiniajame skydelyje sukūrę paketą atkreipkite dėmesį, kad buvo sukurti keli failai ir du katalogai.

R pakatalogis turi būti visi mano R scenarijai. Aplankas „vyras“ skirtas dokumentams, funkcijos pagalbos failus. „RStudio“ taip pat sukuria pavyzdį labas.R R funkcija.

Taip pat pagrindiniame kataloge yra pora svarbių failų. Aiškinantis PAVADINIMAS Tai gali būti pats straipsnis, tačiau pradedantieji gali pasikliauti, kad devtools ir šios pakuotės tuo pasirūpins.

APIBŪDINIMAS turi keletą svarbių būtinų paketo metaduomenų, todėl turite juos užpildyti. Tai dažniausiai yra lengvi dalykai, pvz., Paketo pavadinimas, autorius, aprašas ir licencija. Čia taip pat eina priklausomybė nuo paketų.

Naudojant šį paketą galima tvarkyti jums tinkamą paketo priklausomybės formatą. Pvz., Jei jums reikia pakuotės tepimo pakuotės, galite ją įkelti biblioteka (naudojama) o paskui bėgti use_package („sutepti“) pridėti priklausomybę. Galite pamatyti, kaip tai automatiškai prideda reikiamą tekstą prie APIBŪDINIMAS failą vaizdo įraše, įdėtame šio straipsnio viršuje (arba paleisdami panašų kodą savo sistemoje).

Parašykite ir dokumentuokite savo funkcijas

Tada parašykite bet kokią funkciją kaip įprasta ir išsaugokite ją kaip R scenarijų R kataloge. Failą galite pavadinti kaip norite, o į failą galite įtraukti vieną ar daugiau funkcijų.

„Roxygen“ siūlo paprastą būdą pridėti dokumentaciją prie funkcijos. Užveskite žymeklį bet kur funkcijos apibrėžime ir pasirinkite „RStudio“ meniu parinktį Kodas> Įterpti deguonies skeletą.

Tai suteikia jums keletą pastolių, kad galėtumėte dokumentuoti funkciją taip, kaip supranta R, pvz

# 'Pavadinimas

#'

# '@param diena

#'

# “@return

# '@export

#'

#pavyzdžiai

Pavadinimas laukas yra savaime suprantamas, taip pat galite pridėti trumpo aprašymo eilutę. Čia yra @param kiekvieno funkcijos argumento eilutė (šiame pavyzdyje funkcija turi vieną argumentą, vadinamą dieną), @grįžtiir @pavyzdžiai. @param čia dokumentuojate, koks duomenų tipas turėtų būti argumentas, ir galite pateikti šiek tiek aprašymo. @grįžti pasako, kokio tipo objektas grąžinamas. @pavyzdžiai nereikia, bet reikia pateikti pavyzdį arba ištrinti tą numatytąjį @pavyzdžiai.

Norėdami šį pastolį paversti R paketo pagalbos failu, paleiskite devtools :: dokumentas () funkcija.

Dabar, jei žiūrite į katalogą „Man“, turėtumėte turėti „Markdown“ pagalbos failą savo naujajai funkcijai (taip pat kitą numatytajai Sveiki funkcija).

Sharon Machlis,

Paketą galite sukurti naudodami skirtuką „RStudio Build“. „Install and Restart“ parinktis yra tinkama, kai dirbate su kodu. Jei norite sukurti jį bendrinti, įskaitant šaltinio failo ar dvejetainio failo gavimą, patikrinkite skirtuką „Kurti“ išskleidžiamąjį meniu Daugiau.

Bėk pagalba (paketas = "tavo paketo pavadinimas") gauti naujos funkcijos pagalbos failą.

Jei norite parašyti paketo vinjetę, paleiskite šį paketą use_vignette () funkcija nustatyti. Įtraukite norimo vinjetės pavadinimą kaip argumentą, pvz., usethis :: use_vignette („Intro“). Turėtumėte pamatyti numatytąją vinjetę, kurioje galėsite užpildyti vinjetės pavadinimą ir paaiškinimo tekstą.

Tikimės, kad to pakanka, kad įtikintumėte, jog gana paprasta parašyti pagrindinį R paketą! Galite padaryti daug daugiau, pavyzdžiui, pridėti testo vienetus su testthat.

Jei norite sužinoti daugiau apie testavimą, peržiūrėkite mano ankstesnį įrašą „Padaryk daugiau su R“ „Test your code with testthat“. Ir Hadley Wickhamas turi visą knygą apie paketų rašymą, kurią galite nemokamai rasti internete adresu r-pkgs.had.co.nz, nors dabar ji šiek tiek pasenusi. Jenny Bryan iš „RStudio“ dirba su Wickhamu dėl atnaujinimo. Šiek tiek vykdomų darbų galite pamatyti r-pkgs.org.