Jak zainstalować dodatkowe pakiety?
Po zainstalowaniu podstawowego środowiska R mamy już dostęp do wielu użytecznych funkcjonalności. Prawdziwa potęga kryje się jednak w tysiącach dodatkowych pakietów, w których znajdują się kolejne tysiące funkcji.
Aby skorzystać z dodatkowych pakietów należy wykonać dwa kroki:
- Zainstalować nowy pakiet na dysku. Ten krok wystarczy wykonać raz, skopiuje on niezbędne pliki do katalogu z pakietami. Ścieżkę do katalogu z pakietami można sprawdzić używając polecenia
.libPaths()
.- Włączyć zainstalowany pakiet w działającej sesji R. Ten krok należy wykonać po każdym uruchomieniu środowiska R. Spowoduje on, że w aktualnej sesji będzie można korzystać z funkcji i zbiorów danych dostępnych w pakiecie.
Instalować pakiety można na kilka sposobów, zależnie od tego czy instalujemy pakiet z pliku czy też z jednego z ogólnie dostępnych repozytoriów.
Najczęściej pakiety instaluje się z oficjalnego repozytorium CRAN (ang. The Comprehensive R Archive Network). To można zrobić funkcją install.packages()
.
Przykładowo, poniższe polecenie instaluje pakiet ggplot2
wraz z pakietami zależnymi, bezpośrednio z repozytorium CRAN. Pakiet ggplot2
zawiera zbiór funkcji do tworzenia wykresów statystycznych, jest to bardzo popularny pakiet a jednak nie ma go w podstawowym środowisku i musimy go na początku doinstalować.
install.packages("ggplot2")
Nowy pakiet można też zainstalować wybierając z menu opcję Tools/Install packages...
.
Niektórych pakietów nie ma w repozytorium CRAN, lub są w starszej wersji.
Przykładowo, jeden z wymogów stawianych przed pakietami na CRAN jest ograniczenie wielkości pakietu do nie więcej niż 10 MB.
Większe pakiety oraz pakiety w wersjach roboczych są często instalowane z repozytorium GitHub.
Do instalacji pakietów z tego repozytorium można wykorzystać funkcję install_github{devtools}
.
Przykładowo, aby zainstalować pakiet PogromcyDanych
z repozytorium użytkownika pbiecek
z GitHuba można wykorzystać instrukcję
devtools::install_github("pbiecek/PogromcyDanych")
Poza tymi dwoma repozytoriami istnieje też wiele innych specjalistycznych.
Przykładowo wiele pakietów wykorzystywanych w analizach bioinformatycznych znajduje się w repozytorium Bioconductor
(https://www.bioconductor.org/).
Po zainstalowaniu nowego pakietu, pliki z danymi, funkcjami i plikami pomocy znajdą się na dysku twardym komputera.
Ale aby móc skorzystać z wybranych funkcji należy przed pierwszym użyciem załadować (włączyć) odpowiedni pakiet.
Po każdym uruchomieniu platformy R ładowane są pakiety podstawowe takie jak: base
, graphics
, stats
, itp. Aby skorzystać z dodatkowych funkcji lub zbiorów danych, należy załadować (włączyć) pakiet, w którym się one znajdują (zakładamy, że pakiety te zostały już zainstalowane). Pakiety włącza się poleceniem library()
.
Poniższa instrukcja włącza pakiet devtools
. Po włączeniu pakietu można używać funkcji z tego pakietu bez konieczności dodawania prefixu devtools::
.
library("devtools")
Jak już pisaliśmy, aktualnie dostępnych jest ponad 7000 pakietów, które możemy dodatkowo zainstalować. W tak dużym zbiorze trudno czasem odnaleźć pakiet z interesującą nas funkcjonalnością.
Dlatego, przedstawiając nowe funkcje będziemy korzystać z notacji nazwaPakietu::nazwaFunkcji()
. Zapis ggplot2::qplot()
oznacza, że funkcja qplot()
znajduje się w pakiecie ggplot2
. Ten prefix pomijamy dla pakietów base
, stats
, utils
i graphics
, których nie trzeba dodatkowo włączać, są automatycznie włączane z chwilą startu środowiska R. W skorowidzu, znajdującym się na końcu książki, funkcje są wymienione zarówno w kolejności alfabetycznej jak i po pogrupowaniu w pakiety.
Jeżeli znamy nazwę funkcji i chcemy dowiedzieć się w jakim pakiecie ta funkcja się znajduje a nie mamy tej książki pod ręką, to możemy wykorzystać funkcją help.search()
. Przeszuka ona wszystkie zainstalowane pakiety w poszukiwaniu funkcji o wskazanej nazwie lub funkcji, w których opisie wystąpiło zadane słowo kluczowe. Więcej o tej funkcji i innych sposobach wyszukiwania informacji o funkcjach napiszemy w kolejnym podrozdziale.
Po załadowaniu odpowiedniego pakietu możemy korzystać z dostępnych w nim funkcji podając ich nazwę. Możemy też ręcznie wskazać, z którego pakietu funkcję chcemy uruchomić, co jest przydatne, gdy funkcje o identycznych nazwach znajdują się w kilku załadowanych pakietach. Przykładowo zarówno w pakiecie epitools
jak i vcd
znajduje się funkcja oddsratio()
o tej samej nazwie ale innym działaniu. Aby wskazać, z którego pakietu chcemy wybrać funkcję należy użyć operatora ::
lub :::
.
Operator ::
pozwala na odnoszenie się wyłącznie do publicznych funkcji z pakietu, podczas gdy operator :::
umożliwia odnoszenie się również do funkcji prywatnych.
Oba poniższe wywołania dotyczą funkcji seq()
z pakietu base
, drugi sposób jest szczególnie przydatny, gdy występuje kolizja nazw funkcji z różnych pakietów.
seq(10)
base::seq(10)
Jeżeli nie użyjemy tego operatora, a funkcja o danej nazwie występuje w kilku różnych pakietów, to program R użyje funkcji z ostatnio załadowanego pakietu.