R 2

55
R2 Cursul 3-Modul 2

description

Partea II

Transcript of R 2

  • R2Cursul 3-Modul 2

  • Operatii vectorizate in R> x x>2[1] FALSE FALSE TRUE TRUE> x*y[1] 6 14 24 36> x/y[1] 0,1666667 0,2857143 0,3750000 0,4444444

  • > x x/y #impartire element cu element [,1] [,2][1,] 0.1 0.3[2,] 0.2 0.4> x%*%y # inmultire matrici [,1] [,2][1,] 40 40[2,] 60 60

  • Operatori aritmetici

    OperatorDescriere+adunare-scadere*inmultire/impartire^ sau ** Ridicare la puterex %% y x mod y (5%%2 este 1) x %/% y Impartire intreaga (5%/%2 este 2)

  • Operatori logici

    OperatorDescriere=Mai mare sau egal ==egal !=Diferit de !xNu este x x | y x sau y x & y x si y isTRUE(x)test daca x este TRUE (adevarat)

  • Functiif
  • Exemplu pentru functia sd (deviatia standard)mydata sd(mydata)> sd(x=mydata)> sd(x=mydata, na.rm=FALSE)Al doilea argument controleaza faptul ca valorile lipsa sa fie indepartate sau nu din calculul deviatiei standard (in cazul de fata se indeparteaza).

  • Se poate obtine lista argumentelor unei functii, de exemplu lm (linear model)>args(lm)function(formula, data, subset, weights, na.action,method=qr, model=TRUE, x=FALSE,y=FALSE, qr=TRUE, singular.qr=OK,contrasts=NULL, offset,)Argumentele pot fi regasite dupa denumire sau dupa pozitie. Ele vor fi evaluate in R doar daca sunt necesare.

  • Argumentul este utilizat pentru extinderea unei functii atunci cand nu dorim sa copiem intreaga lista de argumente a functiei initiale.myplotmeanfunction(x,)UseMethod(mean)

  • Argumentul se mai utilizeaza cand numarul de argumente al functiei nu poate fi cunoscut dinainte. Spre exemplu>args(paste)function(, sep= , collapse=NULL)Toate argumentele care apar dupa trebuie denumite.

  • Asocierea valorilor cu un simbolCand limbajul R cauta sa asocieze o valoare unui simbol, va cauta o valoare corespunzatoare in mediile electronice. Ordinea de cautare este in principiu astfel1. Cauta in mediul global un simbol care sa corespunda celui solicitat2. Cauta denumirile existente in fiecare pachet din lista de cautare.

  • Pentru a afisa pachetele din lista de cautare se utilizeaza comanda search() rezultand> search()[1] ".GlobalEnv" "package:stats" "package:graphics" [4] "package:grDevices" "package:utils" "package:datasets" [7] "package:methods" "Autoloads" "package:base"

  • Asa numitul mediu global sau spatiu de lucru este intotdeauna primul element in lista de cautare, iar pachetul de baza este ultimul.Ordinea pachetelor din lista de cautare conteaza.Se poate utiliza comanda library() pentru a incarca un anumit pachet de date, iar acest pachet va trece pe pozitia 2 in lista de cautare.R poate avea aceeasi denumire pentru functii si non-functii, adica putem avea un obiect denumit c si o functie denumita c.

  • Exemplu de utilizare a comenzii library()> library(MASS)> search() [1] ".GlobalEnv" "package:MASS" "package:stats" [4] "package:graphics" "package:grDevices" "package:utils" [7] "package:datasets" "package:methods" "Autoloads" [10] "package:base"

  • Functia seq(sequence)>seq(from=1, by=2, to=5)[1] 1 3 5Ordinea arg. nu> seq(by=2, to=5, from=1)este importanta[1] 1 3 5> seq(from=1, by=2, length=3)[1] 1 3 5> seq(from=1, by=2, to=5, length=3)Error in seq.default(from = 1, by = 2, to = 5,length = 3): too many arguments

  • Functii numericeAceste funcii aplicate unui numr dau ca rezultat un alt numr, iar aplicateunui vector sau unei matrice se aplic fiecrui element al vectorului sau matriceirespective (sunt vectorizate).

  • FunctiaExplicatiiabs(x) |x| sqrt(x) Radical din x ceiling(x) Dac x(n-1,n] valoarea returnat este n floor(x), trunc(x) Partea ntreag a lui x round(x, digits=n) Rotunjire la n zecimale signif(x, digits=n) Rotunjire la cele mai semnificative n cifre cos(x), sin(x), tan(x), acos(x), asin(x), tan(x), cosh(x), acosh(x),etc Funcii trigonometrice directe i inverse precum i funcii hiperbolice directe i inverse log(x) Logaritmul natural, ln x log10(x) Logaritmul n baza 10, lg x exp(x) xe

  • Functii pentru matrice

    Operatorul sau functiaExplicatiiA * B nmulirea element cu element A %*% B nmulirea matriceal crossprod(A,B) crossprod(A) AtB, respectiv AtA cbind(A,B,...) Combin vertical (rezultatul va avea coloanele din A, B,...) rbind(A,B,...) Combin orizontal (rezultatul este o matrice cu liniile din A, B,...) solve(A) Inversa matricei A min(A), max(A), range(A) Minimul, maximul, respectiv un vector cu minimul si maximul

  • Functii pt siruri de caractere

    FunctiaExplicatiecharacter(length) Creaz un ir de blank-uri de lungime length nchar(x,...) Numrul de caractere din ir substr(x,start=n1,stop=n2) Extrage un subir dintr-un ir dat sau nlocuiete o parte dintr-un subir cu un ir dat toupper(x) Convertete la majuscule tolower(x) Convertete la minuscule LETTERS, letters Sunt vectori cu caracterele majuscule (minuscule) ale alfabetului latin.

  • Repartitii de probabilitateR pune la dispoziia utilizatorilor un mare numr de distribuii de probabilitate.Numele pentru densitatea de probabilitate ncepe cu d (de exemplu, dnorm), pentrufuncia de repartiie ncepe cu p (de exemplu, pnorm), pentru cuantile ncepe cu q (deexemplu, qnorm), pentru vectori aleatori ncepe cu r (de exemplu, rnorm).

  • RepartitiiModul de apelareNormal

    dnorm(x,mean=0,sd=1,log=FALSE)pnorm(x,mean=0,sd=1,lower.tail=TRUE,log.p=FALSE)qnorm(q,mean=0,sd=1,lower.tail=TRUE,log.p=FALSE)rnorm(n,mean,sd), n este numrul de valori aleatoareHi patrat

    dchisq(x, df, ncp=0, log=FALSE)pchisq(q,df,ncp=0,lower.tail=TRUE,log.p = FALSE)qchisq(p,df,ncp=0,lower.tail=TRUE,log.p = FALSE)rchisq(n, df, ncp=0)ncp nu se utilizeaz de obicei, implicit e 0Student (t)

    dt(x, df,ncp=0, log=FALSE)pt(q, df,ncp=0, lower.tail = TRUE,log.p = FALSE)qt(p, df, ncp=0, lower.tail = TRUE,log.p = FALSE)rt(n, df, ncp=0), n este numrul de valorialeatoare

  • Functii statistice elementare

    FunctiaExplicatiemean(x, trim=0, na.rm=FALSE) Media obiectului x. trim indic ce fracie din valorile dinspre capete se neglijeaz. Parametrul na.rm indic dac se elimin NAi NaN din calcul. sd(x,na.rm=FALSE) Deviaia standard median(x,na.rm=FALSE) Valoarea median cov(x, y = NULL, use = "everything", method = "kendall") Covariana vectorilor x i y sau a matricei ori data.frame x (n acest caz se face covarian ntre coloane). Parametrul method poate fi "pearson", "kendall", "spearman"., use(cum tratam valorile lipsa)range(x) Intervalul [minim, maxim]

  • Functii pt teste statisticePentru teste statistice se poate apela n R la funcii specializate ca: t.test, binom.test, prop.test, var.test, wilcox.test, shapiro.test, bartlett.test, Box.test, chisq.test, fisher.test, friedman.test, ks.test, etc. Informaii despre aceste funcii,parametrii de intrare i rezultatele returnate, se pot gsi n paginile de ajutor din R.Valoarea de baz returnata de un test este p.value, notat n exterior ca p-value. Dac este mai mare dect pragul de risc definit 1-nivelul de ncredere (n teste nivelul de ncredere este numit conf.level) atunci ipoteza este acceptabil cu o eroare de tipul I sub pragul de risc.

  • Functii graficen R se pot executa grafice de calitate pentru datele admise. Aceste grafice sunt trimise pe ecran sau n fiiere de diverse tipuri. Pentru a realiza acest lucru trebuie deschis un device.Comanda windows() deschide ecranul ca dispozitiv grafic, comanda jpeg() deschide ca dispozitiv grafic un fiier n care se va scrie informaia grafic n format jpeg, postscript() deschide un fiier de tip postscript, pdf(), png(),win.metafile(), etc

  • Aceste comenzi au ca parametru file (numele fiierului unde se salveaz graficul), width =limea n pixeli, height= nlimea n pixeli. Numai un dispozitiv este activ la un moment, trecerea de la unul la altul se face cu dev.next(), dev.prev(), dev.set(which=k). Listarea dispozitivelor grafice se face cu comanda dev.list(), nchiderea unui dispozitiv cu dev.off(k), iar nchiderea tuturor cu graphics.off().

  • Dup comanda graphics.off() trebuie deschis un nou dispozitiv pentru a putea tipri grafic, de regul windows() pentru ecran. Un clic dreapta pe fereastra cu reprezentarea grafic de pe ecran deschide un meniu cu opiuni de salvare sau copiere a coninutului n clipboard.

  • Rutinele grafice de baz se mpart n trei categorii:rutine de nivel nalt high level n urma crora se creaz o fereastr grafic nou n care se pun graficele specificate prin argumentele rutinelor; rutine de nivel scazut low level prin care la graficul existent se adaug informaii suplimentare ca text, puncte, linii; grafice interactive prin care utilizatorul poate interaciona cu graficul prin intermediul mouse-ului pentru a obine informaii despre valorile din diverse poziii de pe grafic sau pentru a aduga informaii n diverse poziii de pe grafic.

  • Rutinele de nivel inaltplot - plot(x,y,...), plot(xy,...), tiprete punctele de coordonate (x[i],y[i]) utiliznd diverse opiuni grafice ; plot(f,x) unde f este un factor pentru x tiprete un boxplot pentru x grupat dup factorul f; plot(x~y) face graficele coloanelor y n funcie de x; plot(x) pentru o variabil care are metoda plot produce un grafic specific acelui tip de variabil.

  • pairs - pairs (x) unde x este o matrice face toate graficele (x , x< j>) unde x i x< j> sunt coloane ale lui xhist - hist(x,...) tiprete histograma frecvenelor valorilor din vectorul x. Opiunea frecvent utilizat este nclass=n pentru a specifica n cte clase se mpart datele din x. Cu opiunea probability=TRUE histograma va reprezenta probabilitile nu frecvenele.

  • boxplot - boxplot(x,...) sau boxplot(x~y,data=z,...). n primul caz se execut un boxplot pentru valorile din vectorul sau lista de vectori x, iar n al doilea caz se execut un box plot pentru valorile din coloana x grupate dup factorul y, date ce se afl n variabila z (de exemplu z este data.frame iar x, y sunt dou coloane n z).barplot - barplot(x,...), unde ... sunt opiuni, tiprete sub form de bare verticale valorile lui xdotchart dotchart (x,) face graficul valorilor lui x sub form de puncte

  • image - image(x,y,z,...), image(z,...) reprezint matricea z prin culori; x[i] i y[j] reprezint coordonatele centrului dreptunghiului unde se reprezint prin culoare valoarea z[i,j]contour, filled.contour - contour(x,y,z, nlevels=n,...) reprezint grafic liniile de contur ale valorilor z[i,j] din matricea z, avnd pe axe gradaiile date de vectorii x, respectiv y. Analog pentru filled.contour, unde spaiul ntre dou linii de contur e colorat.

  • persp - persp(z), persp(x,y,z), persp(x,y,z,theta=a,phi=b,...) deseneaz o suprafa pe care sunt punctele de coordonate (x[i], y[j], z[i,j]). Direcia de vedere a suprafeei se ajusteaz prin parametrii theta i phi (in grade), iar ltheta i lphi dau direcia de unde vine lumina pe suprafa, r d distana de la care se vede (r mare e ca vederea de la infinit). Culoarea este controlat prin parametrul opional col. Pentru a obine o senzaie de relief mai puternic se utilizeaz opiunea shade=numr de obicei ntre 0 i 1, thicktype poate fi simple sau detailed, axes este TRUE sau FALSE dup cum se pun sau nu marcajele pe axe, xlim, ylim, zlim dau valorile limit pe axe, valori care sunt cuprinse n grafic, main i sub sunt titlul i subtitlul, sunt titlurile axelor. Dac scale =TRUE atunci nu se pstreaz proporia pe cele trei axe.

  • Rutine de nivel scazutPrin tiprirea cu rutine de nivel scazut se adaug elemente noi la graficul existent.points - points(x,y,...) tiprete puncte n coordonatele specificate de x i ylines - lines(x,y) adaug linii ntre punctele de coordonate specificate n vectorii x, y.

  • text - text(x,y,text,...) determin scrierea ncepnd din poziia (x[i],y[i]) a caracterelor din text[i]. Un parametru auxilar numit pos ce poate avea valorile 1, 2, 3, 4 controleaz dac textul este sub, la stnga, deasupra sau la dreapta punctului (x, y).mtext - mtext(text,...) scrie un text pe o margine a graficului. Parametrii opionali : side pentru a controla marginea (1=jos, 2=stnga, 3=sus, 4=dreapta), col este culoarea pentru text, line=ntreg controleaz deprtarea fa de marginea corespunztoare a graficului (n linii).

  • abline - abline(a=valoare1, b=valoare2) traseaz graficul lui y=a+bx, abline(h=valoare) traseaz linia orizontal prin y=h, abline(v=valoare) traseaz linia vertical prin x=v., abline(coef=vector) traseaz linia care are n coef ordonata la origine i panta, abline(obiect) traseaz o linie de parametrii coef din obiect (dac exist).

  • axis - axis(side,...) traseaz o ax n funcie de parametrul side (1=jos, 2=stnga, 3=sus i 4=dreapta). segments - segments(xo,yo,xd,yd,...) traseaz segmente de la (xo,yo) la (xd,yd). Dac xo, yo, xd, yd sunt vectori atunci se traseaz mai multe segmente.arrows - arrows(xo,yo,xd,yd,...) traseaz sgei de la (xo,yo) la (xd,yd)

  • box - box(lty=tip, col=culoare) determin trasarea unui dreptunghi n jurul graficului cu tipul de linie lty i culoarea col.grid - grid(nx,ny, col=culoare, lty=tiplinie) determin trasarea unui caroiaj cu culoarea col i tipul de linie lty. Se mai poate introduce parametrul lwd care d grosimea liniilor de caroiaj. Pe axa Ox sunt nx diviziuni, iar pe axa Oy sunt ny diviziuni

  • legend - legend(x,y, legenda, col=vector, text.col=vector, lty=vector, pch=vector, bg=,...) unde (x,y) este poziia pe grafic al colului stnga sus al legendei (se poate indica poziia prin cuvinte "topleft sau "bottomright" sau prin instruciunea locator() caz n care este aleas cu mouse-ul), legenda este un vector cu elemente text (se poate da textul din legend prin legend=textul , col este un vector cu indicii culorilor marcajelor din legend, text.col este un vector cu indicii de culoare pentru textele din legend, lty este un vector de ntregi cu indicii tipurilor de linie din grafice, pch este un vector cu indicii tipurilor de linie din legend, bg este indicele culorii de fundal din legend.Culorile, tipurile de linie sau tipurile de puncte pot fi specificate i prin cuvinte.

  • title -title(main=text1, sub=text2, xlab=text3, ylab=text4,...) determin scrierea unui titlu(main), subtitlu(sub), etichete pentru axe(xlab, ylab) care sunt luate din text1, text2, etc.

  • Exemplu creare grafic> attach(mtcars)> plot(wt,mpg)> abline(lm(mpg~wt))> title("Regression of MPG on weight )- Regresia mile/galon combustibil pe greutate

  • Salvarea graficelor

    FunctieFisierpdf("mygraph.pdf")pdf file win.metafile("mygraph.wmf")windows metafile png("mygraph.png")png file jpeg("mygraph.jpg")jpeg file bmp("mygraph.bmp")bmp file postscript("mygraph.ps")postscript file

  • Parametri graficiSe pot modifica parametrii de reprezentare grafica (culori, fonturi, axe, titluri, etc.) cu ajutorul functiei par().Exemplepar() #vizualizeaza setarile curenteopar
  • Control text si marime simboluri

    optiunedescrierecexnumar care indica acea cantitate relativ cu care simbolurile vor fi scalate fata de cea implicita. 1=implicit, 1.5 este cu 50% mai mare, 0.5 este cu 50% mai mic etc. cex.axisMarirea notatiei axei relativ la cex cex.labMarirea etichetelor x si y relativ la cex cex.mainMarirea titlurilor relativ la cex cex.subMarirea subtitlurilor relativ la cex

  • Cu optiunea pch= optiune se poate specifica aspectul punctelor din grafic. Pentru simbolurile 21 - 25, se specifica culoarea marginii (col=) si culoare de umplere (bg=).

  • Liniile se pot modifica cu ajutorul optiunilor:

    Tipurile de linii (lty) sunt specificate fie cu ajutorul unei valori intregi (0=blank, 1=solid (default), 2=linie intrerupta, 3=puncte, 4=linie punct, 5=linie lunga, 6=doua linii) sau ca un sir de caractere "blank", "solid", "dashed", "dotted", "dotdash", "longdash", sau "twodash"

    optiunedescriereltyTipul de linielwdGrosimea liniei relativ la valoarea implicita (default=1). 2 este de 2 ori mai groasa

  • Culori

    optiunedescrierecolCuloarea implicita a graficuluicol.axisCuloare pentru notatiile axelor col.labCuloare pt etichetele x si y col.mainCuloare pt titluri col.subCuloare pt subtitluri fgCuloare de prim plan bgCuloare de fundal

  • CuloriCulorile pot fi specificate in R prin index, denumire, hexazecimal sau RGB. De exemplu col=1, col="white", si col="#FFFFFF" sunt echivalente.

  • Tipuri de grafice"p" pt puncte, "l" pt linii, "b" pt ambele, "c" numai pt partea cu linii din "b", "o" pt ambele de la overplotted, "h" pt histograma "s" pt scara, "S" alte tipuri de grafice in scara "n" fara reprezentare grafica.

  • Fonturi

    optiunedescrierefontIntreg care specifica fontul de utilizat pt text. 1=simplu, 2=bold, 3=italic, 4=bold italic, 5=symbol font.axisfont pt notarea axelor font.labfont pt etichete x si y font.mainfont pt titluri font.subfont pt subtitluri psMarime font (aprox 1/72 inch) marime text=ps*cexfamilyFamilie de fonturi family pt text special. Valorile standard sunt "serif", "sans", "mono", "symbol".

  • Axe si textMulte tipuri de functii grafice permit includerea axele si optiunilor de text, precum si alti parametri grafici. De exemplu plot(x, y, main="title", sub="subtitle", xlab="X-axis label", ylab="y-axis label", xlim=c(xmin, xmax), ylim=c(ymin, ymax))

    Pentru adaugarea titlurilor

    title(main="main title", sub="sub-title", xlab="x-axis label", ylab="y-axis label")

  • Se pot crea axe personalizateaxis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...)

    optiunedescrieresideIntreg care indica pe ce parte a graficului sa fie desenate axa (1=jos, 2=stanga, 3=sus, 4=dreapta)atvector numeric care indica unde trebuie desenate semnelelabelsVector caracter al etichetelor de plasat la semne (if NULL, se foloseste valoarea at )posCoordonata la care trebuie desenata linia axei. (de ex. Valoarea pe cealalta axa cand e intersectata)ltyTipul linieicol Culoarea liniei si a semnuluilasEtichetele sunt paralele (=0) sau perpendiculare(=2) pe axetckLungimea semnelorca fractiune din domeniul graficului (numar negativ este in afara graficului, numar pozitiv este in interiorul graficului, 0 suprima semnele, 1 creeaza o grila) default -0.01 (...)Alti parametri grafici

  • Se pot adauga linii de referinta unui grafic utilizand functia abline()abline(h=yvalues, v=xvalues)Pentru a adauga linii orizontale continue la y =1,5 si 7abline(h=c(1,5,7))Pentru a adauga linii verticale albastre la x=1,3,5,7,9abline(v=seq(1,10,2),lty=2,col="blue")Sau se poate utiliza functia grid()

  • Se poate adauga si o legenda graficului utilizand functia legend()legend(locatie, titlu, legenda, ...)

    optiunedescrierelocationSe pot da coordonatele x,y pt coltul din stanga sus. Se poate folosi locator(1), pt a utiliza mouse-ul in indicarea locatiei. Se pot utiliza cuvinte cheie "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "bottomright", sau"center". titleSir de caractere pt titlul legendei (optional) legendVector caracter cu etichetele ...Alte optiuni. If the legend labels colored lines, specify col= and a vector of colors. If the legend labels point symbols, specify pch= and a vector of point symbols. If the legend labels line width or line style, use lwd= or lty= and a vector of widths or styles. To create colored boxes for the legend (common in bar, box, or pie charts), use fill= and a vector of colors.

  • Exemplu de grafic cu legendeattach(mtcars) boxplot(mpg~cyl, main="Milage by Car Weight", yaxt="n", xlab="Milage", horizontal=TRUE, col=terrain.colors(3)) legend("topright", inset=.05, title="Number of Cylinders", c("4","6","8"), fill=terrain.colors(3), horiz=TRUE)

  • *