Sunteți pe pagina 1din 39

Limbaj R

curs2
Ce este limbajul R?

1. limbaj de scripting folosit pentru manipularea si analiza datelor


statistice, inspirat dupa limbajul S dezvoltat de AT&T
2. creat de statisticieni pentru statisticieni
3. un instrument utlizat intens de analistii de date
4. ofera instrumente complexe pentru analiza statistica
5. platforma de realizare a graficelor si a rapoartelor
6. A fost dezvoltat la începutul anilor '90. => eforturi mari pentru
îmbunătățirea interfeței utilizatorilor R: editor de text rudimentar la R
Studio interactiv -a angajat multe comunități de științe ale datelor din
întreaga lume.
De ce R?
-este open-source, poate fi implementat in domenii publice alaturi de
limbajul statistic S
-Stilul de codificare este destul de ușor.
-acces instant la peste 7800 de pachete personalizate pentru diverse
sarcini de calcul.
-Sprijinul comunității -există numeroase forumuri
- experiență de calcul de înaltă performanță (necesită pachete)
-Una dintre cele mai căutate abilități de către firme de analiză și știință.
-compatibil cu o varietate larga de limbaje comerciale
-disponibil atat pt Windows,Mac,Linux
-permite crearea unor functii pt a automatiza analizele efectuate
-are o structura de POO
http://www.slideshare.net/george_mihai_2005/programare-r-1
http://www.holehouse.org/mlclass/16_Recommender_Systems.html
Instalare

1.  Go to https://www.rstudio.com/products/rstudio/download/
2.  In ‘Installers for Supported Platforms’ section, choose and click the
R Studio installer based on your operating system. The download
should begin as soon as you click.
3. Click Next..Next..Finish.
4. Download Complete.
5. To Start R Studio, click on its desktop icon or use ‘search windows’
to access the program. It looks like this:
2.Mediul de dezvoltare integrat (IDE):

•evidentierea sintaxei
•autocompletarea codului
•identare inteligenta
•poate executa codul R direct din editor
•salt rapid la definitiile functiilor
R studio
1.Caracteristici:
1. versiuni open source si comerciale - integreaza instrumentele pe care
le utilizam cu R intr-un mediu integrat
2. poate rula pe desktop, web browser sau server
3. navigare eficienta prin fisiere si functii
4. dezvoltarea in proiecte
5. suport integrat pentru Git si subversiuni
6. editor de HTML, PDF, documente Word si prezentari
7. supports interactive graphics cu Shiny şi ggvis
Interfața R Studio:
R Consola: interfata implicita, include: o
interfata multi-document (MDI) si una de tip
un singur document (SDI)
- ieșirea codului executat.
-scrierea directă a codului sursă în consolă.
(codul introdus direct în consola R nu poate fi urmărit
mai târziu). Acesta este locul unde scenariul R vine să
fie folosit.
R Script: -spațiu pentru a scrie coduri; pentru a rula
aceste coduri (selectare linie (linii) de cod și apăsare Ctrl
+ Enter. Alternativ-click pe butonul "Run" din colțul din
dreapta sus al R scriptului.
R mediu:+Environment, History, Build
-afișează setul de elemente externe adăugate.
-include setul de date, variabilele, vectorii,
funcțiile etc.
- verifică dacă datele au fost încărcate corect în
R
Ieșire grafică: -afișează graficele create în
timpul analizei datelor exploratorii.
+Files, Plots, Packages, Help, Viewer
3.Imbină fluxul de lucru:
1.integreaza Help R cu documentatia
2.se poate lucra mai eficient cu mai multe foldere prin
proiecte
3.browser pentru Workspace si vizualizor/editor de
date
4. Editare & Depanare:

•depanare interactiva pentru


diagnosticarea si repararea erorilor
•pachete pentru instrumente extinse de
dezvoltare
•editare cu ajutorul Sweave si R
Markdown
Pachete R
-puterea R =>pachetele sale.
-cele mai multe sarcini de prelucrare a datelor pot fi efectuate
în două moduri:
1. utilizarea pachetelor R
2. utilizare a funcțiilor R bază.
Exemplu instalare de pachet R:

1.install.packages("zoo")
2.install.packages("zoo", pos= 2)
3.install.packages("zoo", pos= "package:base")
4.remove.packages("zoo")
5.update.packages()
In mod visual
Incarcarea/utilizarea pachetelor

•library() - afiseaza toate pachetele disponibile


(instalate)
•library(lattice) - incarcarea pachetului lattice
•require(lattice) - similar cu library
Comunitate on-line

1. R-FAQ - [https://cran.r-project.org/doc/FAQ/R-FAQ.html]
2. Search engine - [http://rseek.org/]
3. R news si tutoriale dezvoltate de (573) R bloggers-[
http://www.r-bloggers.com/]
4. Google Groups
5. LinkedIn Groups
6. Quick-R - [http://www.statmethods.net/]
7. R pentru utilizatori SPSS si SAS - [http://r4stats.com/]
8. R Journal - [http://journal.r-project.org]
9. MRAN (Managed R Archive Network) - [
http://mran.revolutionanalytics.com]
10.http://journal-sfds.fr/index.php/J-
Pachete de bază în R:

-dplyr, tidyr, reader, data.table, SparkR, ggplot2

=>manipularea, vizualizarea și calculul datelor se


realizează mai rapid.
Setare director curent
În mod comandă
setwd("~/mydirectory")

Visual
Session > Set Working Directory.

Help
Informaţii despre funcţii utilizăm ?
Ex: ?functionName

Sau
help(functionName)
Determinare director curent
Funcţia: getwd()

R este case sensitive şi deci x şi X sunt interpretate ca simboluri diferite


şi se vor referi la variabile diferite.
Odată cu lansarea R-ul se deschide o nouă sesiune R.

Ieşirea din sesiunea R se poate face utilizând comanda:


q()
 sau echivalent
 > quit()
Pe ecran va apare o întrebare referitoare la memorarea sesiunii de lucru
(instrucţiuni lansate la linia de comandă, obiecte cu care s-a operat, etc.)
care se poate salva într-un fişier şi redeschide mai târziu sau se poate
renunţa definitiv la aceasta.
Limbajul R
-are cinci clase fundamentale sau “dinamice" de obiecte.
-tot ce se crează sau se lucrează în R este un obiect:
vector -o secvență de numere sau caractere de acelaşă tip
Matrice-mai mullţi vectori la un loc
list - o colecție de obiecte
Factor - o secvență care atribuie o categorie fiecărui index
Data.frame- o structură de tip tabel (rezultate experimentale adesea colectate în această formă)
Enviroment- hash table. Colecţie de perechi de tip (key,value)

Tipurile în R sunt:
Character
Numeric (numere reale) subclasa Integer (numere întregi)
Complex
Logică (Adevărat / Fals)
Clasele de obiecte,   cum ar fi datele de exprimare, sunt construite din acestea.
Majoritatea comenzilor din R implică aplicarea unei funcții unui obiect
Vectorul -tipul de bază
În R, tipul "de bază" este un vector, nu un scalar.
• Un vector este un set indexat de valori de aceleași tip.
Vectorii cu o singură componentă se numesc scalari.
-nu sunt permişi indici negativi,
- indicele 0 este ignorat sau oferă informaţii despre tip. => indicii acceptaţi sunt 1, 2, ... Vectorii
pot fi creaţi interactiv sau se pot importa din fişiere.
- Crearea interactivă a vectorilor se poate face utilizând funcţia de concatenare „c”.

Atribuirea se face cu <- sau cu funcţia assign()

Cel mai simplu mod de creare a vectorului este: c(x1, . . . , xn) funcţionând atât pentru numere
cât şi pentru caractere
>x <- c("a", "b", "c")
> length(x)
>[1] 3
Asocieri în vector
La o valoare numerică se asociază un id sir de caractere
Vector Arithmetic
Vectorii numerici pot fi utilizați în expresii aritmetice, caz în care operațiile sunt efectuate
element cu element pentru a produce un alt vector

Operatorii aritmetici sunt: +, -,/,*


- log, exp, log2, sqrt….
Properietăţi ale vectorului
În procesul de analiză a datelor se utilizează de
sum, max, min, mean și var (x)
Generarea secvențelor regulate

seq(1,30) echivalent cu c(1, 2, 3, ..., 29, 30); echivalent cu 1 : 30.

Funcțiile din R pot avea mai mulți parametri care sunt setați ca argumente a funcției
seq este un exemplu.
a <- character(n) -crează un vector de caracter a de lungime n, cu fiecare intrare "". integer
(n) și numeric (n) creează vectorii numerici de lungime n cu intrări 0.
Prima comandă este stenografie pentru
Vector Logic
Lucrul cu datele implică adesea operaţii de comparare a numerelor.
Comparații în valorile logice de ieșire R
TRUE, FALSE sau NA (“nu sunt disponibile“).

La fel ca în cazul operațiilor aritmetice, comparațiile logice cu un vector sunt aplicate la fiecare
intrare și ieșire ca vector al valorilor adevărului; adică un vector logic
Logical Comparisons
Vectorii logici sunt utilizați în mare măsură pentru a extrage intrări dintr-
un set de date
îndeplinind anumite condiții.

Operatori logici<=, >, >=, ==, !=

Dacă c1 şi c2 sunt expresii logice,


atunci c1 & c2 (“and”),
c1 | c2 este (“or”),
!c1 este negatia lui c1.
Valori lipsă

-O caracteristică inteligentă a lui R este aceea că permite valorile lipsă în vectori și seturi de date;
-le desemnează ca NA.
-Multe funcții, cum ar fi cor (), au opțiuni pentru manipularea valorile lipsă.
Subsecvenţe în vectori
Obținerea elementelor unui vector cu proprietăți dorite este operaţie extrem de comun, deci
există instrumente robuste pentru a face acest lucru.
Un element de a vectorul v este atribuit un index prin poziția sa în secvență, începând cu 1.
Funcția de bază pentru subsetare este [].
v [1] este primul element, v [length (v)] este ultima.
Ştergere subsecveţe din vector
Subsecvenţe şi Logical vector
Având în vedere un vector x și un vector logic L de aceeași lungime ca x, x [L] este vectorul
intrărilor în x care se potrivesc cu o TRUE în L.
Dacă x este un vector cu nume și A este o subsecvență a numelor (x), atunci x [A] este secvența
corespunzătoare a lui x.
-etichetarea fiecărei valoari a unui vector generează așa-numiții vectori cu elemente
etichetate sau „named vectors”.

Exemplu:stocarea împreună a vârstei și numelor unor persoane, va impune utilizarea


funcției „c()” pentru a crea un astfel de vector:

var.Varsta -vector numeric, nu unul de tip caracter și nici un factor, etichetele valorilor
neinfluențând tipul de date,
-afișare etichete se face cu prin apelul funcției „names()”.
Obiecte, moduri și clase

R- un limbaj de programare orientat obiect => toate elementele din R sunt  obiecte.
Obiect in R este tot ceea ce se acceseaza: un număr, un șir de numere, un text, o variabilă, o
bază de date, o funcție apelată, un rezultat - toate sunt obiecte R. 
Utilizarea obiectelor impune denumirea și stocarea lor în variabile.
Ex: numărul 14 reprezintă vârsta în ani împliniți pe care o are un copil, stocarea acestuia într-o
variabilă numită „varsta” pe baza principiului de stocare a obiectelor în variabile utilizând
combinația „<-” :
varsta <- 14
varsta
[1] 14
Explicație:
În prima linie s-a atribuit variabilei „varsta” valoarea 14,
în a doua linie s-a tastat pur și simplu numele variabilei (varsta) pentru a afișa ce conține.=> R a
returnat valoarea 14.

Comentarii se introduc semnul diez (#) – au rolul de a specifica rolul unor funcții sau semnificația
unor operații realizate de user.
Orice obiect din R are o serie de atribute ce descriu informațiile conținute în acel obiect.

Modul (mode)- atribut important al obiectelor R


- oferă informații despre categoria de date conținută, astfel încât modul unui obiect R
poate fi „numeric”, „logical” sau „character”.
Exemple:
definire variabila „var.numar” cu funcția c(). Functia mode() –are
rolul de a afișa tipul de dată conținut de variabila var.numar în acest
exemplu este numeri
În R se acceptă

limbajului R, prezinta conversia automată:


Dacă o variabilă conține numere și valori de adevăr, R convertește automat valorile de adevăr în
numere (adevărat = 1 și fals = 0), variabila devenind „numeric”.
În cazul în care apar texte, indiferent dacă se găsesc și numere sau valori de adevăr, variabila
este automat definite de tip „character”

Funcția mode()- permite aflarea tipului de informație conținută într-un obiect înainte ca acel
obiect să fie supus altor prelucrări.
Funcțiile „is.numeric()”, „is.logical()” și „is.character()”-se folosesc pt a depista daca o variabilă
este de tipul numeric, logic sau caracter=> testează dacă obiectul conține un anumit timp de
date, returnând „adevărat” sau „fals”.
is.function()” pentru a se testa dacă avem de a face cu un obiect de tip funcție. Evident că da.
Factori reprezintă Date Categoriale
De obicei, într-un experiment eșantioanele sunt clasificate în unul dintr-un grup de categorii
stabilite.
În R astfel de rezultate sunt stocate într-un factor.
A- factor este un vector de caractere augmentat cu informații despre categoriile posibile, numite
levels a factorului.

Datele conținute într-un factor pot fi


codificate într-un vector de caractere, există
multe funcții suplimentare care se pot aplica
unui factor.
Factorii sunt utilizați în ANOVA.
List
un vector poate conține numai numere, caractere sau valorile logice. =>
frecvent, se crează colecții de vectori sau alte obiecte de date de tip mixt.
În R acest lucru se face cu o listă.
Obiectele dintr-o listă sunt cunoscute sub denumirea de componente.
Listele sunt adesea creat destul de explicit:

Componentele sunt întotdeauna numerotate și pot fi menționate ca atare.


Lst [[1]] este prima componentă (și anume "Joe"); etc la

Deoarece ultima componentă este un vector, puteți extrage prima intrare


din el ca Lst [[4]] [1].
Pentru Lst o listă, lungimea (Lst) este numărul de componente;
nume (Lst) este vectorul de caractere al numelor componentelor.
Adesea, ordonarea componentelor este artificială. Vrem modalități simple de obținere a valorii
unei componente utilizând numele. Există două moduri:

Pentru o listă LL cu n componente și o secvență de 1: n,


LL [s] desemnează sublistul cu componentele corespunzătoare indicilor din s.

Obs: LL [[1]] este diferită de LL [1]. LL [[1]] este valoarea


primei componente; LL [1] este lista cu o componentă a
cărei valoare este LL [[1]].
Lst [[m]] are sens numai atunci când m este un întreg întreg. Lst [[1: 2]] produce o eroare.
Listele pot fi concatenate ca vectori.