Manual de R (Estadística)

De Viquillibres, la col·lecció de manuals de contingut lliure
Dreceres ràpides: navegació, cerca

Contingut

[modifica] Manual simple de R (Estadística)

[modifica] 1._ Introducció:

Es tracta d'un programa de llicència GNU. Una vegada instal·lat, el que veiem és una finestra en blanc amb un cursor o prompt ">", i és allí on hem d'escriure les instruccions.

Funciona a base d'instruccions que hem d'anar posant però sols explicarem les mès senzilles ja que instal·lant un paquet anomenat "Rcmdr" que en realitat és el conjunt de varis paquets ens facilita aquelles instruccions mès complicades però llavors ja necessitem un nivell avançat. Si treballem amb linux, també podem utilitzar el RKWard, una interfície gràfica del R sota KDE que funciona amb menús.

Com tot programa té la seva sintaxi i la seva manera d'emmagatzemar les dades i és el que explicarem.

Hem de saber que R si fa diferència entre majúscules i minùscules i per tant per a ell les següents variables són diferents: "AA", "Aa", "aA" i "aa".

Quan s'assigna un valor a una variable el valor que aquesta pren no surt per pantalla i per tant s'ha de cridar un altra vegada la variable per visualitzar el valor que ha près.

Per sortir del R, teclejar:

q()

[modifica] Ajudes

Amb l'ordre:

> help.start()

s'obre una pàgina web amb enllaços als documents d'ajuda. També és pot demanar ajuda amb l'ordre:

 ?<ordre>

Per exemple, si es vol que es mostre l'ajuda sobre l'ANOVA:

 ?anova

[modifica] 2._ Primers passos

ls() Primer de tot hem de saber quines son les variables que tenim en memòria i per això utilitzem l'instrucció "ls()" que és com llistar totes les variables.

rm() Per esborrar una variable hem d'utilitzar l'instrucció "rm(nom_variable)".


[modifica] 3._ Definició de variables

Asignar una variable Per asignar el valor "24" a la variable "hores" usem la comanda:

hores<-24

També és pot assignar un valor amb el signe "=". La ordre seria:

hores=24

Per que mostri el valor de la variable "hores":

hores

Igualment amb:

dies<-365 minuts<-60 segons<-60

Per tant si volem que ens faci el producte hem de possar i hem de saber que com que el resultat surt per pantalla no s'emmagatzema enlloc i per tant haurem de tornar a escriure l'ordre per tornar a calcular el resultat:

dies*hores*minuts*segons

c()

Si volem assignar els valors 7, 35 i 54 a una variable escriurem:

variable<-c(7,35,54)

Si el que volem és que ens faci una llista de l'1 al 20 ho podem aconseguir fent:

llista<-c(1:20)

Però si ho volem per posar un mateix nombre 7 unes 20 vegades fem:

mateix<-c(rep(7,20))

[modifica] 4._ Càlculs amb manipulació de variables

Si tenim una variable amb 5 posicions i fem la instrucció:

a<-c(1:5); a+5;

Ens dóna com a resultat el mateix vector però amb un cinc sumat a totes les posicions. Recordem que aquest valor no es guarda sino que simplement s'imprimeix per pantalla.

Si l'elevem al quadrat ens dóna els quadrats de cada posició.

a^2

En definitiva si fem operacions amb una variable que és un vector ens fa tantes operacions com posicions té el vector.



[modifica] 5._ Funcions

sum(nom_variable) Ens suma tots els valors de la variable. Si volem sumar els valors de l'1 al 20 fem:

sum(c(1:20))


sort(nom_variable) Ordena els valors d'una variable.


sqrt(nom_variable) Arrel quadrada.


^ Potència.


mean() Mitja aritmètica.


summary() Fa un resum d'estadística descriptiva de la variable.


sample(nom_variable,longitud) Agafa una mostra aleatòria de la longitud dessitjada entre tots els valors de la mostra.


runif(n) Genera una successió de n nombres aleatoris segons una llei uniforme.


rnorm() Genera una successió de n nombres aleatoris segons una llei normal.


length() Diu el nombre de posicions del vector.


Prod() El producte dels elements d'un vector.

prod(c(1:20))

exp(sum(log(c(1:20))))



[modifica] 6._ Càlcul amb funcions

Anem a calcular la mitja aritmètica:

sum(nom_variable)/length(nom_variable)

Calculem la mitja armònica:

1/sum(1/nom_variable)/length(nom_variable)

[modifica] 7._ Fitxers

read.table() Per llegir fitxers utilitzem la comanda on headers vol dir si te el nom de les variables, sep és el caràcter que separa els diferents valors i dec és el caràcter decimal:

dades <- read.table("C:/temp/Datos2.txt", header=TRUE, sep="",na.strings="NA", dec=",", strip.white=TRUE)

write.table()

write.table(taula.de.dades, "C:/temp/taula.de.dades.txt", sep=" ",

 col.names=TRUE, row.names=TRUE, quote=TRUE, na="NA")



[modifica] 8._ Gràfics

plot()


[modifica] 9._ Matrius

matrix(nom_variable,n_files) Expressa la variable en forma d'una matriu amb les files dessitjades.

t() Ens fa la transposada d'una funció.

%*% És el simbol per poder multiplicar dues funcions.

solve() Ens calcula la matriu inversa d'una altra.

[modifica] 10._ Programació

IF

if(cond) expr if(cond) cons.expr else alt.expr


FOR

for(var in seq) expr while(cond) expr repeat expr break next


Exemples:

for(i in 1:5) print(1:i)


for(n in c(2,5,10,20,50)) {

  x <- stats::rnorm(n)
  cat(n,":", sum(x^2),"\n")

}


f = factor(sample(letters[1:5], 10, replace=TRUE)) for( i in unique(f) ) print(i)

[modifica] 11._ Definició de funcions

Per definir una funció s'utilitza una notació generica:

nom_funcio <- function (nom_variable_1,nom_variable2...) {

instruccions de la funció

return nom_variable_resultat; }

Per exemple podem definir la funció que ens dona les solucions d'una equació de segon grau:

eq2n<-function(a,b,c){ if (a==0) { return (c("Els paràmetres introduïts no pertànyen a una equació de segon grau"))} else if (b^2-4*a*c<0) { return (c("La solució és complexa",complex(real = -b/(2*a), imaginary = -sqrt(-b^2+4*a*c)/(2*a)),complex(real = -b/(2*a), imaginary = sqrt(-b^2+4*a*c)/(2*a))))} else { sol1<-(-b-sqrt(b^2-4*a*c))/(2*a); sol2<-(-b+sqrt(b^2-4*a*c))/(2*a); return (c(sol1,sol2))} }

Eines de l'usuari
Espais de noms

Variants
Accions
Navegació
Comunitat
Imprimeix/exporta
Eines
En altres llengües