Manual de R (Estadística)
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))} }