Sunteți pe pagina 1din 8

INTRODUCERE ÎN R

De ce R?

În primul rând, R este un freeware – ceea ce înseamnă că oricine, având acces la


internet, poate în mod legal să debarce, să-și instaleze și să utilizeze acest program, singura
condiție fiind menționarea lui în cadrul capitolului de metodologie, în cazul în care rezultatele
obținute prin utilizarea lui sunt publicate sau valorificate în vreun alt fel. Gratuitatea acestui
program a făcut să aibă un număr foarte mare de fani, ceea ce aduce cu sine alte avantaje. În
primul rând, în mediul virtual există o mare comunitate de utilizatori care comunică între ei,
astfel încât dacă avem o problemă căreia nu îi găsim singuri rezolvarea, putem oricând să
lansăm o întebare pe unul dintre forumurile de discuție, și în general răspunsul nu se lasă
așteptat. Sau, și mai simplu, ținând cont de faptul că foarte probabil și altcineva, înaintea
noastră, a avut acceași problemă și a primit răspunsul, îl putem căuta direct pe acesta.
R este un program modular, format din pachetul de bază, care se descarcă împreună
cu programul, la care se pot adăuga alte pachete, care se descarcă ulterior, în funcție de
necesități. Numărul mare mare de utilizatori avansați determină ca noi pachete (unele mari,
cuprinzând sute de comenzi, altele mici, doar cu câteva funcții) să fie produse în ritm rapid,
extinzând astfel posibilitățile lui de utilizare, în prezent fiind probabil cel mai popular
program de prelucrare a datelor, folosit în toate domeniile, de la cel economic, la geografie,
genetică sau ecologie.
R este un program de tip limbaj de programare. Spre deosebire de softurile din
pachetul Office și alte programe statistice (Systat, Statistica, SPSS), în care comunicarea cu
calculatorul presupune doar localizarea unor iconițe și apoi un simplu click, în cazul R-ului
trebuie să adresăm calculatorului comenzi explicite care trebuie să poată fi înțelese de acesta.
Acest lucru constituie în același timp un avantaj dar și un dezavantaj. Funcționarea pe bază de
comenzi oferă posibilitatea creării de către utilizatori a unor noi funcții, în concordanță cu
propriile necesități, oferind astfel posibilități practic nelimitate în utilizarea lui. Pe de altă
parte însă, tocmai din această cauză, mai ales la început, utilizarea R-ului poate să fie, și în
general este, dificilă și uneori frustrantă.

Instalarea programului R, versiunea 3.5.0

Instalarea acestui program necesită un spațiu liber pe hard de aproximativ 150 MB.
Debarcarea programului puteți să o faceți de pe diverse site-uri, însă de recomandat este să
intrați direct pe site-ul programului, care cuprinde întreaga arhivă (CRAN – The
Comprehensive R Archive Network): https://cran.r-project.org/. Programul este disponibil
pentru cele trei sisteme de operare larg urilizate: Windows, Linux, Mac. Pentru Windows
găsiți ultima versiune a programului la adresa: https://cran.r-project.org/bin/windows/base/
(utilizați primul link). După terminarea descărcării executabilului, dați click pe el și începeți
instalarea. Păstrați English ca limba programului (limba română nu este printre opțiunile
oferite). Puteți selecta fișierul pentru instalarea programului, cel implicit este Program Files.
În continuare păstrați bifată Core Files și alegeți între 32-bit Files și 64-bit Files, în funcție
de sistemul de operare al calculatorului. Dacă nu sunteți sigur în legătură cu acesta, alegeți
64-bit Files. În continuare bifați Yes (customized startup), care vă va permite să modificați
setările inițiale și pe paginile următoare păstrați bifate MDI (one big window) și apoi HTML
help. În Select Start Menu Folder este recomandat să adăugați numele versiunii: R 3.5.0.
Păstrați bifate opțiunile de pe pagina Select Additional Tasks și apoi instalarea începe. Pentru
a finaliza instalarea apăsați pe Finish, după care căutați icoana pe desktop.
Instalarea programului RStudio

Programul RStudio este un program accesoriu R-ului care ușurează comunicarea cu


acesta, oferind o interfață mai prietenoasă a programului pentru utilizator. Există o versiune
de bază care este gratuită (Open Source Edition) precum și o versiune profesională
(Professional Edition), care necesită licență. Pagina de pe care puteți descărca programul este
https://www.rstudio.com/products/rstudio/download/. Aveți de ales între mai multe versiuni,
în funcție de sistemul de operare. Pentru instalarea programului este necesar să aveți deja
instalat R-ul (o versiune mai nouă de R 3.0.1).

Instalarea pachetelor adiționale

Instalarea R-ului presupune instalarea pachetului de bază. Pachetele adiționale se


instalează ulterior, direct din R sau din RStudio. În R instalarea pachetelor se face din meniul
Packages/Install package(s). După aceea selectați 0-Cloud [https] ca și sursă de instalare,
apăsați OK și va apare o listă lungă de pachete (ordonate alfabetic) din care puteți să selectați
cele de care aveți nevoie. Pentru analizele datelor ecologice unul dintre cele mai importante
pachete este vegan (prescurtare de la Vegetation Analysis). Alegerea pachetului/pachetelor
trebuie confirmată prin butonul OK. Dacă vă apare întrebarea Would you like to use a
personal library instead?, răspundeți Yes.
În RStudio pachetele se instalează din meniul Tools/Install packages, iar în fereastra
care apare trebuie să scrieți numele pachetului/pachetelor (dacă sunt mai multe, se separă prin
virgulă) pe care doriți să îl/le instalați.

Prezentarea RStudio

Deoarece RStudio ușurează începătorilor lucrul cu R-ul, recomand instalarea și


utilizarea lui pentru toate analizele. Prin urmare, în cele ce urmează, exemplificarea modului
de lucru și capturile de ecran le voi face în RStudio.
Interfața RStudio este împărțită în patru ferestre. Fereastra principală, identică cu cea
din R, este cea din partea stângă, jos. Ea cuprinde consola (R console), care reprezintă
fereastra de comunicare a utilizatorului cu R-ul. De aici sunt trimise comenzile și aici se vor
afișa rezultatele atunci când cerem acest lucru. Fereastra din stânga sus cuprinde editorul (R
script) aici putem scrie și modifica comenzile înainte de a le trimite programului pentru
executare. Spre deosebire de consolă, această fereastră se comportă similar unei pagini Word.
Ea permite ștergerea comenzilor scrise sau dimpotrivă, revenirea la o stare anterioară
(comanda Undo din meniul Edit are efect doar în această fereastră).
R script R Environment

R console R output

Fereastra din dreapta sus constituie mediul R (R Environment sau Global


Environment). Acesta cuprinde toate obiectele rezultate în urma comenzilor noastre, pe care
R le-a reținut, la cererea noastră. Ultima fereastră, din dreapta jos, este fereastra pentru
grafice și pentru meniul de Help (R output). Spre deosebire de majoritatea programelor, în
care acesta este accesat foarte rar, în R meniul de Help este indispensabil. Acesta ne oferă
informații în legătură cu diferitele funcții, și anume utilitatea lor, sintaxa, care este tipul de
date și forma sub care trebuie să le introducem, ce anume rezultă în urma aplicării lor,
împreună cu exemple. Accesarea meniului de Help este posibilă doar dacă există conexiune
de internet.

Operațiile și funcțiile de bază în R

În consolă comenzile au culoare albastră, rezultatele prezentate de R sunt negre, iar


culoarea roșie este rezervată mesajelor de eroare sau avertizare. Pe ultimul rând apare un
singur caracter (numit command prompt), de culoare albastră, la fel ca și comenzile:
>
care are indică faptul că programul așteaptă comanda noastră. În R comenzile pot să
ia două forme: expresii (expression) și atribuiri (assignment). O expresie este evaluată iar
apoi rezultatul este prezentat în consolă. Scrierea comenzii se poate face direct în consolă, iar
pentru transmiterea ei programului se apasă tasta ”Enter”. O altă variantă, utilizată atunci
când dorim să salvăm comenzile pentru a le utiliza și ulterior, este să utilizăm editorul. Pentru
a transmite o comandă din editor în consolă și automat programului, combinația de taste este
”Ctrl+Enter”. În această freastră ”Enter” funcționează la fel ca în Word, creând un nou rând.
O altă variantă este utilizarea icoanei ”Run” din partea dreaptă a ferestrei de editare.
Indiferent de varianta aleasă, în acest fel este transmisă doar o singură comandă (de pe un
singur rând, sau de pe rânduri multiple dacă comanda este lungă). Pentru transmiterea
simultană a mai multor comenzi succesive, trebuie marcat întregul text dorit, după care se
apasă ”Ctrl+Enter” sau ”Run”.
Expresiile pot fi operații simple:
> 3+5
[1] 8
sau succesiuni de operații, semnul pentru înmulțire fiind ”*” iar cel pentru împărțire
”/”:
> 3+5*8
[1] 43
După cu observăm, R efectuează operațiile în ordine matematică (mai întâi înmulțirea
5*8 = 40, apoi adunarea 3+40 = 43). Dacă dorim efectuarea operațiilor în altă ordine, aceasta
trebuie indicată prin folosirea parantezelor. Indiferent câte perechi de paranteze utilizăm,
toate vor fi rotunde, cele drepte și acoladele fiind utilizate în alte contexte)
> ((3+5)*(8-3.5))/4
[1] 9
Semnul pentru ridicarea la putere este ”^” iar pentru extragerea rădăcinii pătrate se
utilizează funcția sqrt( ).
> 5^2
[1] 25
> 5^3
[1] 125
> sqrt(36)
[1] 6
Pentru extragerea rădăcinii cubice se folosește o altă funcție, cuberoot ( ), însă aceasta
nu este disponibilă în pachetul de bază, ci în kader.
În toate exemplele anterioare rezultatul ne-a fost prezentat însă el nu a fost reținut.
Fereastra Global Environment este în continuare goală. Cel mai adesea însă avem nevoie ca
rezultatele operațiilor să fie reținute, pentru a fi utilizate ulterior. Pentru aceasta vom apela la
comenzi de tip atribuire. Semnul pentru atribuire este:
<-
Dacă, de exemplu dorim ca rezultatul împrțirii lui 6 la 12 să fie reținut sub denumirea
de ”z”, vom formula comanda:
> z<-6/12
>
Și observăm că, spre deosebire de comenzile anterioare, de data aceasta programul nu
ne-a returnat nimic, însă obiectul z și conținutul lui, 0.5, au apărut în Global Environment.
Pentru a vedea ce cuprinde obiectul z, îl chemăm prin comanda:
> z
[1] 0.5
Același lucru îl obținem și în cazul în care cerem direct rezultatul împărțirii:
> 6/12
[1] 0.5

Vectori

R-ul operează cu mai multe categorii de obiecte. Dintre acestea vectorii sunt cele mai
simple. Ei sunt șiruri de elemente de același tip. Vectorii se pot crea utilizând funcția de
concatenare c ( ).
> x<-c(1,7,2,3)
> x
[1] 1 7 2 3

ATENȚIE! R este sensibil la majuscule. Dacă folosiți notația x pentru a defini un


obiect (în cazul nostru un vector) și apoi vreți să îl chemați cu X, programul vă va semnala o
eroare, spunând că obiectul respectiv nu există.
> X
Error: object 'X' not found
Același lucru este valabil în ceea ce privește funcțiile.
> SQRT(36)
Error in SQRT(36) : could not find function "SQRT"
În schimb, programul este tolerant la prezența sau absența spațiilor între elementele
comenzilor:
> x<-c(1,7,2,3)
> x
[1] 1 7 2 3
> x <- c ( 1 , 7 , 2 , 3 )
> x
[1] 1 7 2 3

Numărul de elemente ale unui vector poate fi aflat prin funcția length ( ) (lungime):
> length(x)
[1] 4
Suma elementelor vectorului este calculată prin funcția sum ( ) (sumă):
> sum(x)
[1] 13
iar media prin mean ( ) (medie)
> mean(x)
[1] 3.25
Același rezultat îl obținem și împărțind suma la lungimea vectorului:
> sum(x)/length(x)
[1] 3.25
Varianța este:
> var(x)
[1] 6.916667,
iar abaterea standard:
> sd(x)
[1] 2.629956,
care se poate obține și:
> sqrt(var(x))
[1] 2.629956
Valorile parametrilor ce caracterizează vectorul x pot fi reținute prin atribuire:
> y<-c(mean(x), var(x), sd(x))
> y
[1] 3.250000 6.916667 2.629956

Operațiile pot implica și vectori. Dacă ei au aceeași lungime, operația respectivă se


efectuează pentru fiecare pereche în parte (primul element al primului vector și primul
element al celui de al doilea):
> x+x
[1] 2 14 4 6
> x*x
[1] 1 49 4 9
Dacă vectorii au lungime diferită, cel scurt este reciclat (adică după ce ultimul lui
element a fost utilizat, se ia din nou primul element):
> x+y
[1] 4.250000 13.916667 4.629956 6.250000
Warning message:
In x + y : longer object length is not a multiple of shorter object
length
Ultima valoare afișată este rezultatul adunării utimului element al vectorului x (al
patrulea) cu primul element al vectorului y (care are numai trei elemente). Datorită faptului
că numărul de elemente ale vectorului mai lung nu este multiplu al numărului de elemente al
vectorului mai scurt, primim un mesaj de avertizare (Warning message). Acesta nu trebuie
confundat cu mesajul de eroare. Este doar o semnalare a unei potențiale probleme.
Inegalitatea lungimii vectorilor poate fi rezultatul unei greșeli de care poate nu suntem
conștienți (poate am uitat să trecem ultimul element în cel de-al doilea vector). Mesajul nu
apare însă dacă x este multiplu de yy:
> yy<-c(mean(x), var(x))
> x+yy
[1] 4.250000 13.916667 5.250000 9.916667
Dacă operația implică un vector și un număr, acesta este utilizat împreună cu fiecare
element al vectorului:
> x+1.5
[1] 2.5 8.5 3.5 4.5
> x/2
[1] 0.5 3.5 1.0 1.5
Ștergerea unui obiect din Global Environment se face prin comanda rm ( ) (remove =
îndepărtează). După utilizarea acesteia, obiectul respectiv nu mai poate fi accesat. De aceea,
utilizarea acestei comenzi trebuie făcută cu grijă:
> rm(y)
> y
Error: object 'y' not found
Ordonarea crescătoare a elementelor vectorilor se face prin comanda sort ( )
(sortează):
> sorted.x<-sort(x)
Sau putem opta pentru înlocuirea valorilor originale ale vectorului x cu cele ordonate,
pe care o vom face doar dacă suntem siguri că nu mai avem nevoie de vectorul în format
original:
> x<-sort(x)
> x
[1] 1 2 3 7
R poate crea secvențe de numere. Semnul ”:” este utilizat pentru numerotare:
> 1:25
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
22 23 24 25
Funcția seq ( ) (secvență) crează secvențe de numere între două capete, fie pe baza
lungimii intervalului dintre două elemente succesive (utilizând atributul by = ), fie pe baza
lungimii secvenței (utilizând atributul length = ).
> seq(0, 40, by=2)
[1] 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
> seq(1,46, length=20)
[1] 1.000000 3.368421 5.736842 8.105263 10.473684 12.842105 15.210526
17.578947 19.947368 22.315789
[11] 24.684211 27.052632 29.421053 31.789474 34.157895 36.526316 38.894737
41.263158 43.631579 46.000000
O altă funcție care ne poate scuti de muncă redundantă este rep ( ) (repetă). Obiectul
funcției îl reprezintă elementul sau secvența pe care dorim să o repetăm iar atributul ei îl
constituie numărul de repetiții (times = )
> rep(1:4, times=3)
[1] 1 2 3 4 1 2 3 4 1 2 3 4

Toate exemplele de până acum au implicat numai valori numerice. Elementele


numerice sunt unul dintre cele trei tipuri de categorii de elemente utilizate de R. Acesta poate
fi aflat prin comanda class ( ):
> class(x)
[1] "numeric"
A doua categorie de elemente este cea de tip caracter. Vectorii tip caracter se
formează în același fel cu cei numerici, prin utilizarea funcției c ( ). Elementele de tip caracter
sunt acceptate ca atare numai dacă sunt plasate între ghilimele. În afara ghilimelelor
caracterele sunt acceptate numai ca funcții sau ca obiecte definite prin atribuire:
> fructe<-c(struguri, ananas, cirese, pere, mere)
Error: object 'struguri' not found
> fructe<-c("struguri", "ananas", "cirese", "pere", "mere")
> fructe
[1] "struguri" "ananas" "cirese" "pere" "mere"
> class(fructe)
[1] "character"
Elementele de tip caracter nu trebuie să cuprindă neapărat litere, cifrele pot și ele fi
forțate să fie acceptate ca și caractere, dacă sunt plasate între ghilimele:
> nivel<-c("1", "2", "3")
> class(nivel)
[1] "character"
A treia categorie de elemente este cea de tip logic, cuprinzând două valori: TRUE
(adevărat) și FALSE (fals). Acestea se obțin de obicei prin utilizarea operatorilor logici: <
(mai mic), > (mai mare), <= (mai mic sau egal), >= (mai mare sau egal), == (egal) sau ! x ==
y (diferit), ! fiind semnul pentru negație.
> x<2
[1] TRUE FALSE FALSE FALSE
> z<-x<2
> z
[1] TRUE FALSE FALSE FALSE
> class(z)
[1] "logical"

> !x==1
[1] FALSE TRUE TRUE TRUE

Selectarea unor elemente din cadrul vectorului se poate face prin utilizarea
parantezelor drepte și indicarea poziției acelor elemente care se doresc selectate:
> x[1]
[1] 1
> x[c(1,4)]
[1] 1 7
Același rezultat îl putem obține eliminând elementele pe care nu dorim să le păstrăm,
prin utilizarea semnului – :
> x[-c(2,3)]
[1] 1 7
Vectorul x are patru elemente pe care i le-am atribuit. Dacă cerem selectarea
elementului de pe poziția 5, ni se va răspunde că el nu a fost atribuit – NA (not attributed):
> x[5]
[1] NA

Elementelor unui vector (indiferent de tipul lui) i se pot atribui nume, prin comanda
names ( ) (nume):
> names(x)<-c("a","b","c","d")
> x
a b c d
1 2 3 7
> names(fructe)<-c("a","b","c","d", "e")
> fructe
a b c d e
"struguri" "ananas" "cirese" "pere" "mere"
> names(z)<-c("a","b","c","d")
> z
a b c d
TRUE FALSE FALSE FALSE
Vectorul cu nume atașate poate fi mai scurt decât cel căruia i se atașează numele, caz
în care ultimele elemente ale acestuia vor avea numele NA:
> fructe
a b c d <NA>
"struguri" "ananas" "cirese" "pere" "mere"
însă el nu poate fi mai lung:
> names(x)<-c("a","b","c","d", "e")
Error in names(x) <- c("a", "b", "c", "d", "e") :
'names' attribute [5] must be the same length as the vector [4]

S-ar putea să vă placă și