2.3 Knihovny
Všechny funkce, datové struktury, data i vše ostatní je v R organizováno do knihoven. Základní knihovny (base
, methods
, datasets
, utils
apod.) jsou přítomny v každé instalaci R a se načtou automaticky při jeho spuštění. Ostatní knihovny je potřeba nainstalovat a před použitím načíst do paměti.
2.3.1 Instalace a aktualizace knihoven
Seznam knihoven, které máte aktuálně nainstalované a načtené do paměti můžete v RStudiu zobrazit v záložce Packages
(nahrané balíky mají zapnuté zaškrtávátko).
Většina balíků v R je k dispozici v centralizovaných repositářích. Hlavním repositářem je CRAN (https://cran.r-project.org/). Instalace balíků z CRANu je jednoduchá. V RStudiu stačí v záložce Packages
kliknout na tlačítko Install
. (Při první instalaci je třeba nastavit adresu zrcadla CRANu, ze kterého se budou balíky stahovat. Doporučuji použít zrcadlo Global CDN RStudio
.) K ruční instalaci knihoven slouží funkce install.packages()
.
Knihovny se vyvíjejí (většinou zlepšují) a obvykle je dobré mít instalovány poslední verze. K aktualizaci balíků slouží v RStudiu v záložce Packages
klikátko Update
. To však funguje jen pro knihovny nainstalované z CRANu.
Kromě CRANu existují i dva další velké centrální repositáře knihoven:
- GitHub, který obsahuje vývojové verze knihoven a nové knihovny, které se dosud nedostaly na CRAN, viz https://github.com/
- Biocondutor, který obsahuje převážně knihovny pro analýzu genomu, viz https://www.bioconductor.org/
Návod, jak instalovat knihovny z GitHubu, je zde: http://blog.numbersinlife.com/2012/12/installing-r-packages-from-github.html.
Poznámka: Knihovny se mohou instalovat bud do systémové části, nebo do uživatelského adresáře. Nevýhodou instalace do uživatelského adresáře je, že po přechodu na novou verzi R musíte své balíky nainstalovat znovu, protože se adresář s balíky zahrnuje v cestě i verzi R. (RStudio navíc zobrazuje zvlášť seznam balíků instalovaných v systémové a v uživatelské části.)
Existuje několik řešení:
V Linuxu můžete instalovat knihovny i do systémové části. K tomu stačí změnit přístupová práva příslušného adresáře (v Ubuntu při instalaci z CRANu
/usr/local/lib/R/site-library
) naa+w
.Ve Windows i v Linuxu můžete nastavit alternativní cestu k uživatelsky instalovaným balíkům (což se hodí i v případě, že standardní cesta nefunguje kvůli tomu, že obsahuje mezery, háčky a čárky). Postup je následující: 1) vytvoříte vhodný adresář (ve Windows např.
C:\my_R_packages
), kam můžete zapisovat; 2) do příslušného konfiguračního souboru přidáte na konec řádek
.libPaths(c("C:/my_R_packages"))
Pozor: místo zpětných lomítek používejte obyčejná lomítka (jinak musíte zpětná lomítka zdvojit, tj. psát \\
). Můžete použít buď systémový konfigurační soubor Rprofile.site
(při standardní instalaci je ve Windows umístěn v adresáři C:\Program Files\R\R-X.X.X\etc
, kde X.X.X
je číslo verze R, v Linuxu v adresáři /usr/lib/R/etc/Rprofile.site
), nebo osobní konfigurační soubor .Rprofile
. K zápisu do systémového konfiguračního souboru potřebujete administrátorská práva.
Umístění nově instalovaných balíků pak můžete nastavit v RStudiu i ve funkci install.packages()
(tam pomocí parametru lib = "C:/my_R_packages"
).
2.3.2 Použití knihoven
Pokud máte nějakou knihovnu nainstalovanou, můžete ji začít používat. R však samo o sobě o objektech uložených v knihovnách neví. Před jejich použitím je třeba načíst balík do paměti (ve skutečnosti se jen načtou jména objektů v balíku do hledací cesty). K tomu slouží funkce library()
:
library(dplyr) # v závorce je jméno funkce
Při natažení nové knihovny se někdy stane, že nový balík překryje jméno funkce, která byla načtena v knihovně načtené dříve (R o tom vydá varování). I k překryté funkci je možné se dostat přímým voláním funkce, které má následující tvar:
dplyr::anti_join() # před dvojtečkami je jméno knihovny, za nimi jméno funkce
Stejným způsobem je možné volat i funkce z balíků, které nebyly načtené pomocí funkce library()
.