Programování

Jak napsat balíček R.

Když uvidíte „balíček R“, můžete si myslet „Něco, co byste mohli sdílet s ostatními lidmi.“ Balíček R však může být také dobrým způsobem, jak si uspořádat vlastní práci jen pro sebe. A hlavně vaše budoucí já.

Balíčky R vám dávají konzistentní strukturu, takže je pravděpodobnější, že budete kód refaktorovat do funkcí. A přinejmenším stejně důležité: Balíčky vám dávají konzistentní způsob, jak dokumentovat každou z vašich funkcí. Příští rok bude tedy větší šance, že si budete pamatovat, které části vašeho kódu co dělají.

Nastavení systému

Nejprve chcete nastavit systém. Pro snadný vývoj balíčku doporučuji ujistit se, že máte ve svém systému nainstalované tyto knihovny: devtools, usethis, roxygen2, testthat, knitr a rmarkdown.

Pravděpodobně budete potřebovat také trochu více nastavení systému. Ve Windows nainstalujte software s názvem Rtools. Ve skutečnosti jde o softwarovou aplikaci, nikoli o balíček R. V počítačích Mac je užitečné získat Xcode z App Store.

Pokud si nejste jisti, zda je váš systém připraven psát balíčky, má devtools funkci nazvanou has_devel () který kontroluje, zda je vývojové prostředí vašeho balíčku v pořádku. Navrhuji spustit to poté, co budete mít nainstalované devtools.

Sharon Machlis /

Dále můžete vytvořit nový balíček v RStudio tak, že přejdete na Soubor> Nový projekt> Nový adresář a vyberete R Package.

Budete požádáni o název balíčku a zda chcete vytvořit úložiště Git (což obvykle dělám) a použít packrat (což obvykle ne).

Vpravo dole na panelu po vytvoření balíčku nezapomeňte, že bylo vytvořeno několik souborů a dva adresáře.

Podadresář R je místo, kde musí žít všechny moje R skripty. Složka man slouží k dokumentaci - konkrétně soubory nápovědy k funkcím. RStudio také vytvoří ukázku ahoj, R. Funkce R.

V hlavním adresáři je také několik důležitých souborů. Vysvětlující JMÉNO by mohl být článek sám o sobě, ale začátečníci mohou počítat s tím, že se o to postarají devtools a použijí tyto balíčky.

POPIS má některá důležitá požadovaná metadata o balíčku, takže je musíte vyplnit. Jsou to většinou jednoduché věci, jako je název balíčku, autor, popis a licence. Je to také místo, kde závisejí balíčky.

Usethis balíček pro vás zvládne správný formát závislosti na balíčku. Například pokud potřebujete balíček maziva pro svůj balíček, můžete jej načíst knihovna (toto) a pak spusťte use_package ("lubridate") přidat závislost. Můžete vidět, jak to automaticky přidá potřebný text do POPIS soubor ve videu vloženém v horní části tohoto článku (nebo spuštěním podobného kódu ve vašem vlastním systému).

Napište a zdokumentujte své funkce

Dále zapište libovolnou funkci jako obvykle a uložte ji jako skript R do adresáře R. Soubor můžete pojmenovat, jak chcete, a můžete do něj zahrnout jednu nebo více funkcí.

Roxygen nabízí snadný způsob přidání dokumentace k funkci. Umístěte kurzor kamkoli v definici funkce a vyberte možnost nabídky RStudio Kód> Vložit kostru Roxygen.

To vám dá nějaké lešení pro dokumentaci funkce způsobem, kterému R rozumí, jako například

# 'Název

#'

# '@param den

#'

#' @vrátit se

# '@export

#'

# '@ ​​příklady

Pole Název je docela vysvětlující a můžete také přidat řádek pro krátký popis. Tady je @param řádek pro každý argument funkce (v tomto příkladu má funkce jeden argument nazvaný den), @vrátit se, a @ příklady. @param je místo, kde dokumentujete, jaký datový typ by měl mít argument, a můžete poskytnout malý popis. @vrátit se říká, jaký typ objektu je vrácen. @ příklady není povinné, ale je třeba uvést příklad nebo toto výchozí nastavení smazat @ příklady.

Chcete-li toto lešení proměnit v soubor nápovědy balíčku R, spusťte soubor devtools :: document () funkce.

Nyní, když se podíváte do adresáře man, měli byste mít pro novou funkci soubor nápovědy Markdown (stejně jako další pro výchozí Ahoj funkce).

Sharon Machlis,

Balíček můžete vytvořit pomocí karty RStudio Build. Možnost Instalovat a restartovat je dobrá, když jste uprostřed práce s kódem. Pokud jej chcete vytvořit pro sdílení, včetně získání zdrojového nebo binárního souboru, podívejte se na rozbalovací nabídku Další na kartě Sestavit.

Běh help (package = "yourpackagename") získat soubor nápovědy pro novou funkci.

Pokud chcete napsat vinětu balíčku, spusťte tento balíček use_vignette () funkci nastavit. Jako argument uveďte název viněty, kterou chcete usethis :: use_vignette ("Intro"). Měli byste vidět výchozí vinětu, kde můžete vyplnit název a text vysvětlující viněty.

Doufejme, že to stačí k přesvědčení, že je docela snadné napsat základní balíček R! Můžete toho udělat mnohem víc, například přidat do jednotkových testů s testthat.

Pokud se chcete o testování dozvědět více, podívejte se na můj dřívější příspěvek Do More With R „Testujte svůj kód pomocí testthat.“ A Hadley Wickham má celou knihu o psaní balíčků, která je k dispozici zdarma online na adrese r-pkgs.had.co.nz, ačkoli je nyní trochu zastaralá. Jenny Bryan z RStudio pracuje s Wickhamem na aktualizaci. Trochu rozpracované práce si můžete prohlédnout na r-pkgs.org.

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