Az R Markdown egy markdown "dialektus"/formátum aminek fordításával dinamikus dokumentumokat hozhatunk létre, azaz a fájl fordításakor tartalommal bővülhet a dokumentum. R Markdown esetében ez annyit jelent, hogy beilleszett programkódok futtatásra fognak kerülni, majd kimenetük a dokumentumba lesz illesztve. How it works?
Az dokumentumok megírásához természetes szükség van egy szövegszerkesztőre vagy használható az R hivatalos integrált fejlesztői környezete: az RStudio
Az RStudio eszközt könnyen telepíthetjük kedvenc GNU/Linux rendszerünk csomagkezelőjével. Például Arch Linux alatt az AUR repository-ból telepíthetjük választott AUR helper-ünk használatával:
sudo yay -S rstudio-desktop-bin
Én a Kate vagy a Visual Studio Code szerkesztőket használom (R )Markdown írására.
Amennyiben nem rendelkezünk rendszergazdai jogokkal munkaállomásunk felett, fel kell keresnünk az említett project oldalait, majd ott kell közvetlenül letöltenünk őket, viszont annak esélye, hogy nem biztosított a rendszergazda nekünk szövegszerkesztési funkcionalitás nagyon alacsony.
Minden GNU/Linux, BSD munkaállomás rendelkezik legalább egy vi szövegszerkesztővel. :)
Az útmutató feltételezi, hogy a user nem rendelkezik olyan jogokkal, hogy használni tudja munkagépén található csomagkezelő megoldásokat, tehát telepíteni kell egy olyan csomagkezelőt amely minimális mozgástérrel megelégszik a fájlrendszeren belül. Ez most a Miniconda csomagkezelő lesz.
Látogassunk el (mini)conda project weboldalára majd válasszuk ki a rendszerünknek megfelelő csomagot, akár parancssoros környezetből is letölthetjük:
Például 64 bites GNU/Linux rendszerek esetében:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
..vagy
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
...vagy
http -d https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Miután beszereztük, telepítsük fel a csomagkezelőt:
bash Minicon*.sh
Megjegyzés: Ahhoz, hogy a $PATH tartalmazza a conda binárisok könyvtárát nem kell kézileg exportálni újra, elég csak új, itt bash, session-t indítanunk.
Telepítés után pedig további telepítéseket kell elvégeznünk, hogy R Markdown dokumentumokat tudjunk használni.
Az alapvető funkcionalitáshoz telepítenünk kell az r rendszert/környezetet, rmarkdown R csomagot és a pandoc programot is, Conda-val ez a következőképpen tehetjük meg:
conda install r r-rmarkdown pandoc
A fenti parancs (a Conda táraiban) a legfrissebb r,r-rmarkdown és pandoc csomagokat telepíti fel, ha régebbi csomagokat szeretnénk kiválasztani telepítésre akkor előbb érdemes rákeresni a csomagokra, mivel az output tartalmazni fogja az elérhető verziókat a megtalált csomagokból.
Például r-rmarkdown csomag esetében:
conda search r-rmarkdown
A kivánt verziót kiválasztva
conda install r-rmarkdown=1.12
Végül fordíthatjuk dokumentumainkat akár az R rendszerből közvetlenül a rmarkdown::render(<pathToRmd>)
kiadásával, vagy R-n "kívül":
Rscript -e "rmarkdown::render(\"<pathToRmd>\")"
Megadhatunk abszolút vagy relatív utakat is, relatív út például:
Rscript -e "rmarkdown::render(\"mezgageza.Rmd\")"
Ha dokumentum "rmarkdown tesztelése" részben leírtakat ki szeretnénk próbálni akkor:
- Szükség van Python-ra:
- Szükségünk van még a következő csomagokra:
De hogy ne kelljen vágólapozgatni minden egyes csomag esetében:
conda install -c conda-forge make pandoc wordcloud urllib3 matplotlib r r-ggplot2 r-hrbrthemes r-rmarkdown r-reticulate r-tinytex
A Conda-val feltelepített környezet eléréshez lehet szükségünk van kiadni a bash
parancsot jelenlegi munkamenetünk közben. Ennek szükségét a shrek.unideb.hu szerveren dolgozva tapasztaltam.
Írjunk vagy töltsünk le valahonnan egy szintaktikailag helyes .Rmd fájlt.
Leggyorsabban, git kliens megléte mellett, klónozzuk le ezt a repository-t:
git clone https://github.com/jeszy75/markdown-examples.git
Majd lépjünk be az rmarkdown mappába ahol megtalálhatjuk a tesztállományt.
A repo szerencsére biztosított nekünk egy Makefile-t így nem kell bíbelődnünk a fordítással csak adjuk ki a make
parancsot.
Ha minden jól ment akkor meg kell jelennie ennek a sornak:
Output created: rmarkdown-example.html
Az eredmény megnézhetjük webböngészőben.
Ahhoz, hogy az .Rmd fájlokból PDF dokumentumokat állítsunk elő szükségünk van egy TeX kiadás telepítésére. Amennyiben a csomagok feltelepítésére felhasználtuk a mellékelt parancsot, akkor már telepítve van egy TeX rendszer(r-tinytex R csomag által).
Természetesen át kell írnunk az .Rmd fájlt (és a Makefile-t is, ha szeretnénk pdf outputra felhasználni):
Az output résznél minimum következőnek kell állnia:
output:
pdf_document:
toc: true
number_sections: true
Ha a Makefile újra felszeretnénk használni akkor csak a ".html" karakterláncokat kell átírnunk ".pdf"-re.