Introducere R
Introducere R
Introducere R
Introducere în R
http://cran.r-project.org/
Comenzile se scriu începând cu linia unde apare simbolul > (prompt) în cazul în
care se dorește executarea directă a instrucțiunilor din linia de comandă. O altă
opțiune, indicată în cazul unor programe mai lungi, este dată de folosirea
Exemplu:
Introducerea datelor
> input<-scan()
1: 1
2: 4
3: 44
4: 23
5: 75
6: 5
7:
> input
[1] 1 4 44 23 75 5
>
”[1]” indică faptul că input este un vector iar 1 este primul său element.
>x
[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 26
[27] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Primul element din a doua linie este 27, de aceea la începutul liniei apare 27
încadrat de paranteze pătrate.
Numele unui obiect urmat de Enter va afișa conținutul acelui obiect. Varianta
alternativă este folosirea funcției print (nume_obiect).
> x<-c(1,4,44,23,75,5)
>x
[1] 1 4 44 23 75 5
>x
>x
[1] 0 0 0 0 0
Tipuri de date
- Caracter
- Numerice (reale)
- Întregi
- Complexe
- Logice (TRUE/ FALSE)
Exemplul 1:
as.character(x)
Exemplul 2:
> x<-1:10
> class(x)
[1] "integer"
> x.n<-as.numeric(x)
> x.n
[1] 1 2 3 4 5 6 7 8 9 10
> x.c<-as.complex(x)
> x.c
[1] 1+0i 2+0i 3+0i 4+0i 5+0i 6+0i 7+0i 8+0i 9+0i 10+0i
Exemplul 3:
> x<-c("a","w")
> x.n<-as.numeric(x)
Warning message:
> x.n
[1] NA NA
> is.factor(x)
[1] FALSE
> x.f<-factor(x)
> is.factor(x.f)
[1] TRUE
>x
high low
2 2
> attributes(x) # atributele obiectului x vor indica nivelele posibile și clasa din
care face parte obiectul
$levels
$class
[1] "factor"
>x
[1] da nu da nu nu
Levels: nu da
Argumente:
n: numărul de categorii
x<-gl(3,4,12,labels=c("rosu","verde","galben",ordered=FALSE))
>x
[1] rosu rosu rosu rosu verde verde verde verde galben galben
Exemplul 1
>m
[,1] [,2]
[1,] NA NA
[2,] NA NA
[3,] NA NA
[1] 3 2
$dim
[1] 3 2
>m
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> m<-1:6
> dim(m)<-c(3,2)
>m
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> x<-c(1,2,3)
> y<-c(4,5,6)
> m<-cbind(x,y)
>m
xy
[1,] 1 4
[2,] 2 5
[3,] 3 6
> m<-rbind(x,y)
>m
x 1 2 3
y 4 5 6
Crearea listelor
Lista este un caz special de vector ale cărei elemente pot aparține unor clase
diferite.
>x
[1] "Ionescu"
[1] 30
[1] TRUE
Pentru a testa dacă există valori lipsă într-un obiect din R se folosește funcția:
is.na()
Exemplu:
> x<-c(NA,2,4,NA) # a fost creat un vector care are valori lipsa pe prima
poziție și pe ultima
> is.na(x) # funcția va returna un vector de elemente din clasa logical ale căror
valori vor fi TRUE daca pe poziția respectivă există o valoare lipsă și FALSE
altfel
Funcția scan poate fi folosită și pentru a copia date din Excel, singura diferență
față de exemplul anterior constând în faptul că valorile nu mai sunt introduse de
la tastatură ci copiate (Ctrl +C) din excel iar pe prima linia (1:) se tasteaza
Ctrl+V.
Aceste opținui sunt folosite de regulă când datele ce doresc fi introduse sunt de
dimensiuni mici.
Memorie necesară:
Exemplu: Avem de importat un dataframe care are 500 000 de linii și 100 de
coloane. În cazul în care toate datele ar fi numerice necesarul de memorie ar fi
500000*100*8 bytes= 400000000 bytes= 400000000/220 MB=381,469 MB=
0.373 GB. Pentru a importa un dataframe de aceasta dimensiune sistemul va
avea nevoie de dublul acestei memorii.
> x<-data.frame(Nume=c("Maria","Irina"),Varsta=c(25,26),status=c("da","nu"))
# se creează un dataframe ce conține trei obiecte din clase diferite
>x
1 Maria 25 da
2 Irina 26 nu
[1] 2 3
> class(x)
[1] "data.frame"
[1] "factor"
Funcția read.table
Exemplu:
> clase
Exemplu:
s<-split(b,b$CAEN)
> str(s) # Va afișa o listă de obiecte, asociate fiecărui cod CAEN, pentru fiecare
specificându-se numărul de elemente din fiecare categorie și tipul variabilelor.
SPSS: read.spss(file.choose(),header=T)
STATA: read.dta()
Octave: read.octave
Funcția lapply are ca rezultat aplicarea unei anumite funcții pentru fiecare
element dintr-o listă. Rezultatul obținut este tot de tip listă.
Exemplu:
Dacă e x este o listă formată din mai multe matrici putem defini o funcție care să
extragă prima coloană din fiecare matrice astfel:
Funcția apply
x<-matrix(rnorm(200), 20,10)
Simulări
set.seed (1)
rnorm (n, mean, sd) # generează n numere aleatoare dintr-o repartiție normală de
medie și abatere standard specificate
sample(1:10,4)
sample(1:10) # permutare
Varianța: var()
Medie: mean()
Cuantile: quantile()
Corelație: cor()
Covarianță: cov()
Reprezentare grafică
col- culoare
pch col
Funcțiile lines și points pot fi apelate doar dacă anterior a fost apelată funcția
plot
Exemplu:
points(z,w,pch=".",lwd=29,col="blue")
Aplicație: