3 Instalacija i aktivacija paketa

Ovo poglavlje se bavi instalacijom i aktivacijom paketa u R programskom jeziku. Objašnjava se kako paketi čine ključni dio R ekosustava, a detaljno se opisuje proces instalacije paketa kroz različite izvore poput CRAN-a i GitHuba. Poglavlje također pokriva praktične aspekte rada s paketima, uključujući njihovo učitavanje, ažuriranje te rješavanje najčešćih problema i pogrešaka koje se mogu javiti tijekom instalacije i korištenja paketa.

Paketi u R-u obično sadrže skup funkcija i kompiliranog koda, ali mogu uključivati i podatke te dokumentaciju koja pomaže korisnicima da ih učinkovito koriste. Standardna instalacija R-a dolazi s osnovnim paketima, ali postoji tisuće dodatnih paketa koji omogućuju specijalizirane analize, vizualizacije, povezivanje s bazama podataka i mnoge druge funkcionalnosti. Drugim riječima, paketi predstavljaju ključni dio ekosustava i omogućavaju pristup širokom rasponu funkcionalnosti, od osnovne statističke analize do napredne vizualizacije podataka i strojnog učenja.

3.1 Instalacija paketa

Paketi se obično instaliraju pomoću funkcije install.packages(“ime_paketa”). Većina paketa dostupna je na CRAN-u (Comprehensive R Archive Network), ali paketi se mogu instalirati i s drugih izvora kao što su GitHub, Bioconductor itd.

CRAN pruža listu dostupnih paketa, često s opisima i uputama. Za specijalizirane pakete, Bioconductor i GitHub su također popularni izvori.

Za svaki paket postoji dokumentacija koja objašnjava njegovu upotrebu. Dostupna je pomoću help(package=“naziv_paketa”) ili “?ime_funkcije”. U nedoumicama, korisne su stranice kao što je Stack Overflow ili na primjer Towards Data Science.

Najčešće korišteni paketi u R-u pokrivaju širok spektar funkcionalnosti, uključujući analizu podataka, vizualizaciju, manipulaciju podataka, statističku analizu i izradu izvještaja. Neki od najpopularnijih paketa su:

  • dplyr: Ovaj paket je koristan za manipulaciju podacima. Omogućuje lako i brzo sortiranje, filtriranje, grupiranje i sumiranje podataka (Yarberry and Yarberry 2021).

  • ggplot2: Paket za vizualizaciju podataka koji omogućuje izradu složenih grafova i dijagrama koristeći gramatiku grafičkog dizajna (Wickham and Wickham 2016).

  • tidyr: Koristi se za ‘čišćenje’ podataka, pomaže u preuređivanju podataka u čist i uredan format (Wickham and Wickham 2017).

  • readr: Dio „tidyverse” skupa paketa, koristi se za brzo i efikasno učitavanje datoteka kao što su CSV, TSV i FWV (Wickham et al. 2023).

  • tibble: Moderna verzija podatkovnog okvira u R-u, dio „tidyverse” skupa, olakšava rad s tabelarnim podacima (Müller et al. 2023).

  • lubridate: Ovaj paket olakšava rad s datumima i vremenima u R-u, omogućujući jednostavnu manipulaciju i izračunavanje vremenskih intervala (Spinu, Grolemund, and Wickham 2021).

  • stringr: Dio „tidyverse” skupa, koristi se za manipulaciju i obradu stringova (tekstualnih podataka) (Wickham 2019).

  • linprog: koristi Simplex algoritam za rješavanje problema linearnog programiranja (Henningsen 2022)

  • lpsolve:svestrani alat za linearno programiranje koji primarno koristi revidirani Simplex algoritam, ali uključuje i dodatne napredne tehnike te je optimiziran za brzinu Konis, Schwendinger, and Hornik (2023).

  • nloptr: alat za rješavanje problema nelinearne optimizacije (Ypma et al. 2024).

  • purrr: Omogućava funkcionalno programiranje u R-u, što pomaže u pisanju čistog i efikasnog koda (Wickham, Henry, and RStudio 2023).

  • caret: Koristi se za strojno učenje, omogućuje jednostavnu izradu prediktivnih modela i njihovu validaciju (Kuhn et al. 2007).

  • shiny: Omogućava izradu interaktivnih web aplikacija u R-u bez potrebe za temeljitim poznavanjem HTML-a, CSS-a ili JavaScripta (Chang et al. 2023).

Instalacija paketa općenito funkcionira na sljedeći način:

> install.packages("Naziv_paketa")

Instalacija paketa iz izvora koji nisu standardni CRAN repozitoriji, kao što je GitHub, zahtijeva korištenje alata kao što je paket devtools. Paket devtools omogućuje instalaciju paketa izravno iz izvora koda, što je posebno korisno za razvojne verzije paketa ili pakete koji još nisu dostupni na CRAN-u. Malo je vjerojatno da će ovo biti potrebno u ranijim fazama učenja R-a, no ako naiđete na takvu situaciju, možete pristupiti problemu na sljedeći način.

Na primjer, ako želite instalirati paket dostupan na GitHub-u, morate prvo instalirati paket devtools (Wickham et al. 2022) ako ga već nemate. Tada možete koristiti funkciju install_github() iz devtools da instalirate paket izravno s GitHuba. Trebat ćete navesti put do repozitorija na GitHubu, koji obično uključuje korisničko ime vlasnika repozitorija i naziv paketa. Primjer:

> install.packages("devtools")
> library(devtools)
> 
> #ili
> 
> devtools::install_github("korisnickoime/nazivpaketa")
> 
> #Na primjer, ako želite instalirati razvojnu verziju paketa ggplot2:
> devtools::install_github("tidyverse/ggplot2")

Prilikom instalacije paketa s GitHuba, važno je biti svjestan da ti paketi možda nisu prošli sve standardne CRAN testove i provjere, pa stoga mogu biti nestabilni ili nespojivi s drugim paketima.

3.2 Učitavanje paketa

Nakon instalacije, paket se učitava u radnu sesiju pomoću library(ime_paketa) ili require(ime_paketa). library() će dati grešku ako paket nije pronađen, dok require() daje upozorenje i vraća FALSE, što je korisno u uvjetnom programiranju.

> library(Naziv_paketa)

3.3 Ažuriranje paketa

Paketi se redovito ažuriraju, a korisnici mogu ažurirati svoje pakete pomoću funkcije update.packages(). Paketi često ovise o drugim paketima. Instaliranje i ažuriranje jednog paketa može povući i instalaciju ovisnih paketa. Pa tako, ako ažurirate jedan paket, često će biti nužno instalirati i povezane pakete.

> update.packages("Naziv_paketa")

3.4 Najčešće pogreške

Pri učitavanju paketa u R, korisnici mogu naići na nekoliko uobičajenih pogrešaka. Ovdje su neke od najčešćih grešaka koje se događaju prilikom učitavanja paketa i kako ih izbjeći:

  • Nepostojanje paketa: Greška se javlja ako pozvani paket nije instaliran. R koristi pakete koji su instalirani u sustavu, pa ako pokušate učitati paket koji nije instaliran, dobit ćete poruku o grešci. Rješenje je jednostavno instalirati paket koristeći install.packages(“Naziv_paketa”) prije njegovog pozivanja s library(Naziv_paketa).

  • Pogrešan naziv paketa: Često se dogodi da korisnici pogrešno upišu naziv paketa, bilo zbog tipfelera, korištenja krivih velikih ili malih slova, ili zbog pogrešnog naziva. R je osjetljiv na veličinu slova, pa je važno točno upisati naziv paketa.

  • Sukobi između paketa: Neki paketi mogu imati funkcije s istim imenima, što može dovesti do sukoba. Ako dva paketa koja su učitana u istoj sesiji imaju funkcije istih imena, R će koristiti funkciju iz paketa koji je posljednji učitan. Da biste izbjegli ovu vrstu problema, možete koristiti sintaksu paket::funkcija() kako biste jasno naveli koju funkciju želite koristiti.

  • Zastarjele verzije paketa: Ponekad paketi koje želite koristiti zbog zastarjelosti nisu kompatibilni s vašom verzijom R-a ili s drugim paketima koje koristite. Uvijek je dobro redovito ažurirati R i sve instalirane pakete pomoću update.packages() kako biste smanjili ovaj rizik.

  • Problem s ovisnostima: Neki paketi zahtijevaju da određeni drugi paketi budu prethodno instalirani. Ako ove ovisnosti nisu zadovoljene, instalacija ili učitavanje paketa može rezultirati greškom. Rješenje je pažljivo pročitati upute za instalaciju i osigurati da su sve potrebne ovisnosti instalirane.

  • Korištenje paketa iz nestandardnih izvora: Instalacija paketa iz izvora kao što su GitHub zahtijeva dodatne korake, poput korištenja paketa devtools. Važno je slijediti upute i biti svjestan da paketi iz ovih izvora mogu biti u razvojnoj fazi i potencijalno nestabilni.

  • Problemi s pravima pristupa: Prilikom instalacije paketa, osobito na višekorisničkim ili zaštićenim sustavima, može doći do grešaka zbog nedostatnih prava za instalaciju u globalne direktorije. U takvim slučajevima, korisnici mogu koristiti osobne biblioteke ili zatražiti pomoć od administratora sustava.

Pitanja za ponavljanje

  1. Što su paketi u R-u, i zašto su važni za rad u ovom programskom jeziku?

  2. Koja je standardna funkcija za instalaciju paketa iz CRAN repozitorija?

  3. Kako se instaliraju paketi koji nisu dostupni na CRAN-u, na primjer, s GitHub-a?

  4. Objasnite razliku između funkcija library() i require() prilikom učitavanja paketa.

  5. Koja je svrha funkcije update.packages(), i kada je važno ažurirati pakete?

  6. Koji su neki od najčešće korištenih paketa u R-u, i za koje vrste analiza ili zadataka se koriste?

  7. Kako biste riješili problem ako dobijete grešku da paket nije pronađen prilikom učitavanja?

  8. Što učiniti ako različiti paketi u R-u sadrže funkcije s istim imenima? Kako možete jasno naznačiti funkciju iz određenog paketa?

  9. Zašto može doći do problema s pravima pristupa prilikom instalacije paketa, i kako se taj problem može riješiti?

  10. Koje korake možete poduzeti ako instalirani paket ne radi zbog nekompatibilnosti s drugim paketima ili verzijom R-a?