Upload
george-mihai
View
580
Download
5
Embed Size (px)
Citation preview
Programare in “R”
Ce este limbajul R ?
• Este un limbaj de scripting folosit pentru manipularea si analiza datelor statistice, inspirat dupa un alt limbaj de programare, folosit in statistica ,“S”, dezvoltat de AT&T.
De ce “R” ?
• este open-source, poate fi implementat in domeniile publice alaturi de limbajul statistic “S”,
• ca performanta este comparabil cu limbajele si produsele comerciale de programare, de cele mai multe ori fiind mult mai bun ,
• disponibil atat pentru Windows, Mac, Linux,• ca orice limbaj de programare permite crearea unor
functii pentru a automatiza analizele efectuate,
• are o strucura de programare orientata pe obiect.
Un prim exercitiu Crearea un set simplu de date, adica un vector care sa contina
numerele 1, 2 si 3, denumit x:
>x <- c(1,2,3)
Operatorul standard de atribuire este “<-” sau ‘’=‘’, sau functia assign().
In loc de cifre se pot pune chiar si litere
>y <- c(“a”,”b”,”c”)
sau chiar combinatii.
>z <- c(“a”,13, “c”).
O data cu instalarea programului puteti beneficia de existenta unor seturi de date pe care le puteti folosi. Pentru aceasta folositi functia data() :
>data()
>Nile – set de date deja existent
Plotarea unei histograme a acestui set se face utilizand functia hist() :
>hist(Nile)
>?hist – manual pentru aceasta functie>help(hist) - //-
Editarea unui set de date se face cu functia edit()
>edit(Nile)
Structurile de date cu care lucreaza limbajul R
• Vectori>x <- c(1,2,3)
• Matrice – tehnic este un vector ce contine 2 atribute –nr de randuri si de coloane:
• > y <- matrix(c(1,2,3,4),nrow=2,ncol=2)• > y
Sintaxa “matrix” este o functie ce creaza o matrice care contine 2 vectori, vectorii fiind stocati in “y”.
• Liste - structuri de date a caror continut pot fi elemente din diverse tipuri de date si sunt reprezentate prin semnul “$”
>x$u- se traduce prin: este “u” componenta listei “X” ?
• Data frames –liste a caror vectori corespund unor coloane dintr-o matrice
Vectori
Pot fi:
• Numere intregi(integer)
• Zecimale (floating)
• Caractere (string)
• Expresii logice (bollean)
• Complexe
• Obiecte
Exemple:Lungimea unui vector poate fi obtinuta cu ajutorul functiei length():>length(x)
Atribuirea valorilor sau declararea lor
>y <- c(5,12)
sau
> y <- vector(length=2) - declararea vectorului > y[1] <- 5>y[2] <- 12
Operatorii “:” seq() si rep()
Operatorul “:” genereaza o serie consecutiva de valori crescatoare sau descrecatoare
>5:9[1] 5 6 7 8 9
> 5:1[1] 5 4 3 2 1
• Operatorul seq() (secventa) genereaza o secventa aritmetica
>seq(3,7)[1] 3 4 5 6 7
> seq(12,30,3)[1] 12 15 18 21 24 27 30
Operatorul rep() (“repeat”) –repeta
>x <- rep(7,4)
> x[1] 7 7 7 7
>rep(1:3,2)
[1] 1 2 3 1 2 3
Operatii logice cu vectori• Puteti adauga vectori:
>x <- c(1,2,4)> x + c(5,0,-1)• [1] 6 2 3
Functiile any() si all():>x <- 1:10
> if (any(x > 8)) print("exista cel putin un numar mai mare decat 8")[1] " exista cel putin un numar mai mare decat 8 “
>if (all(x < 10)) print("Toate sunt mai mici ca 10")
Indexarea vectorilor
> y <- c(1.2,3.9,0.4,0.12)> y[c(1,3)][1] 1.2 0.4>y[2:3][1] 3.9 0.4> z <- c(5,12,13)z[-1] # exclude elementul 1[1] 12 13
Denumirea vectorilor
• Vectorii pot fi denumiti cu anumite acronime, folosind functia name():
>x <- c(1,2,4)>names(x)• NULL> names(x) <- c("a","b","ab")> names(x)• [1] "a" "b" "ab"> x• a b ab• 1 2 4
Expresii de date logice
> z <- c(5,2,-3,8)
> z
[1] 5 2 -3 8
> z*z > 8
[1] TRUE FALSE TRUE TRUE