Professional Documents
Culture Documents
Introduccion
Introduccin al entorno R
CEDEX: curso de formacin estadstica 16 de diciembre de 2005
R. Berrendero Jose Departamento de Matematicas Universidad Autonoma de Madrid
es R? Como Que descargar e instalar el programa. Formas de obtener ayuda. Algunas caracter sticas generales. Atributos
Gracos con R
Comandos de alto y bajo nivel. Parametros. Divisiones de la ventana graca. Dispositivos gracos.
a la programacion en R Introduccion
Funciones. Sentencias de control. Como organizar las funciones.
al entorno R p. 1/48 Introduccion al entorno R p. 2/48 Introduccion
es R? Que
R. Becker, J. Chambers y A. Wilks desarrollaron el lenguaje S en los AT&T Laboratories El lenguaje S tiene dos implementaciones: una comercial, llamada SPlus, y otra gratuita, llamada R. R fue escrito originalmente por Ross Ihaka y Robert Gentleman (R & R) en 1996. Actualmente, es desarrollado y mantenido por un equipo de unas 18 personas, el llamado R Development Core Team. La pagina principal de R es:
es R? Que
El entorno R es un conjunto integrado de programas para manejo de datos, calculo y gracos. Incluye: Comandos para manejar y almacenar conjuntos de datos Operadores para llevar a cabo calculos con vectores y matrices Comandos para llevar a cabo diversos analisis de datos Comandos para gracos relativamente simple Un lenguaje de programacion La aplicabilidad de R se puede extender mediante paquetes de funciones. base contiene aproximadamente 25 paquetes. La pagina La version web permite disponer de muchos mas.
al entorno R p. 3/48 Introduccion al entorno R p. 4/48 Introduccion
http://www.r-project.org/
http://www.r-project.org
Entrar en CRAN (a la izquierda de la pantalla). conveniente (el mirror de Portugal suele ir Elegir una localizacion no funcionaba ultimamente). bastante rapido; el de Espana Elegir el enlace correspondiente al sistema operativo que nos interese y entrar en base. Bajar y ejecutar en nuestro ordenador el chero
R-2.2.0-win32.exe.
Escribiendo el nombre de un objeto accedemos a su contenido. Los comandos ls() y ls.str() generan listas de los objetos en Para cargarlos en memoria de trabajo:
library(nombre)
Atributos
Cada objeto tiene unos atributos que determinan sus propiedades. Clases de objetos (atributo class) que contienen datos: vector, factor, array, matrix, data.frame, ts, list.
Ventana grfica
class(objeto)
Funciones genericas: el resultado depende de la clase. Atributos intr nsecos: mode y length. Length: numero de elementos de un objeto.
length(objeto)
Consola Ventana de Ayuda
Mode: tipo basico de elementos de un objeto: numeric, character, complex, logical, function, expression.
mode(objeto).
attributes() Por ejemplo, una matriz tiene los atributos dim y dimnames
al entorno R p. 8/48 Introduccion
fichero$variable
Una lista de los paquetes disponibles se obtiene con library() y otra con los conjuntos de datos disponibles se obtiene con data(). Si lo que queremos es generar fichero que incluya los vectores x, y,
z de la misma longitud:
ACTIVIDAD 1
al entorno R p. 9/48 Introduccion
Vectores
Algunos ejemplos sobre como construir vectores regulares y extraer sobre sus elementos: informacion
> seq(1,5,0.5) [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > rep(1,10) [1] 1 1 1 1 1 1 1 1 1 1 > x <- 1:10 > x [1] 1 2 3 4 5 6 7 8 9 10 > x[-2] [1] 1 3 4 5 6 7 8 9 10 > x[3:5] [1] 3 4 5 > x[x<=6] [1] 1 2 3 4 5 6 > x[x<=6] <- 1 > x [1] 1 1 1 1 1 1 7 8 9 10
al entorno R p. 11/48 Introduccion
Matrices
Una matriz es un vector con dos atributos adicionales:
dim: Contiene, por este orden el numero de las y de columnas. dimnames: Contiene los nombres de las las y/o las columnas.
El comando matrix(x,nrow=m,ncol=n) permite crear una matriz de n columnas y m las con los elementos de x:
> matrix(1:10,ncol=5,nrow=2) [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 > matrix(1:5,ncol=5,nrow=2) [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 2 4 [2,] 2 4 1 3 5
al entorno R p. 12/48 Introduccion
Matrices
Extraer elementos.
> x[1,2] > [1] 3 > x[1,] [1] 1 3 5 2 4 > x[,1] [1] 1 2 > x[,-{2:4}] [,1] [,2] [1,] 1 4 [2,] 2 5 > x[,{2:4}] [,1] [,2] [,3] [1,] 3 5 2 [2,] 4 1 3
Pegar vectores.
> x <- 1:4 > y <- 5:8 > rbind(x,y) [,1] [,2] [,3] [,4] x 1 2 3 4 y 5 6 7 8 > cbind(x,y) x y [1,] 1 5 [2,] 2 6 [3,] 3 7 [4,] 4 8
=b
Calcular la inversa de A Calcular los autovalores y autovectores de A Suma de los elementos de A Promedio de los elementos de cada columna de A
Factores y listas
Los factores se usan para especicar los grupos a los que pertenecen elementos de otros vectores.
apply(x,n,com)
anterior, x es una matriz, n puede valer 1 o 2 y com es En la funcion un nombre de comando que actua sobre vectores. Si n
= 1 se genera un nuevo vector como resultado de aplicar com a cada la de x. Si n = 2, se genera un nuevo vector como resultado de aplicar com a cada columna de x
Por ejemplo, apply(x,2,median) calcula las medianas de las columnas de x.
> x <- c(rep(0,5),rep(2,5)) > x [1] 0 0 0 0 0 2 2 2 2 2 > fx <- factor(x) > fx [1] 0 0 0 0 0 2 2 2 2 2 Levels: 0 2 > y <- c(rnorm(5),rnorm(5,mean=2)) > y [1] 0.4495409 1.0131287 0.4293730 0.5483923 0.7747539 3.4454587 2.3241129 [8] 3.7019041 1.3317599 1.8880221 > medias <- tapply(y,fx,mean) # calcula medias por grupos > medias 0 2 0.6430378 2.5382515
Factores y listas
Podemos recodicar una variable (transformandola en un factor) de la manera siguiente:
> x <- rnorm(1000) > fx <- factor(cut(x,breaks=c(-6,0,6),labels=c(negativos,positivos))) > table(fx) # obtiene la tabla de frecuencias fx negativos positivos 486 514
Modelos de probabilidad
importante tiene un nombre en R: Cada distribucion
d p
Las listas son colecciones de objetos que, por alguna razon, queremos tener unidos bajo un mismo nombre. Para crearlas,
q r
Ejemplos: La mediana de una exponencial de parametro obtiene mediante qexp(0.5,2) La probabilidad de que una v.a.
= 2 se
pchisq(7,5).
Analisis descriptivo
Medidas numericas basicas:
Analisis descriptivo
Density
0.2
0.0
0 x
ecdf(x)
2
Normal QQ Plot
0.8
Fn(x)
> x <- rnorm(100) > ks.test(x,pnorm,0,1) One-sample Kolmogorov-Smirnov test data: x D = 0.0878, p-value = 0.4236 alternative hypothesis: two.sided
al entorno R p. 19/48 Introduccion
0.4
0.0
0 x
2
2
0 1 2
ks.test(x,distribuci on,...)
Sample Quantiles
0 1 2
Histogram of x
0.4
Theoretical Quantiles
ACTIVIDAD 3
al entorno R p. 20/48 Introduccion
Ejemplo:
> t.test(x,y,alternative=two.sided,var.equal=T) Two Sample t-test data: x and y t = -2.2274, df = 18, p-value = 0.03892 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -1.87127689 -0.05468917 sample estimates: mean of x mean of y -0.05219967 0.91078336
Modelos lineales
Para ajustar un modelo de regresion
lm(formula,data=data.frame)
Para llevar a cabo un analisis de la varianza
aov(formula,data=data.frame)
Sintaxis en R Modelo Nombre lineal simple Regresion simple a traves del origen Regresion multiple Regresion ANOVA con un factor ANOVA con dos factores aditivo ANOVA con dos factores e interacciones
y x y x-1 y x1 + x2
glm(formula,family,data=data.frame)
Para especicar el modelo que queremos ajustar se utiliza el argumento formula los datos se especica con el argumento El chero en el que estan
y A y A+B y A*B
data
al entorno R p. 23/48 Introduccion al entorno R p. 24/48 Introduccion
hay una serie de argumentos opcionales. Para cada funcion importantes Estos son los mas
axes = T type = p
Si F, no se dibujan los ejes de coordenadas Tipo de graco:
=a
=a
p (puntos), l (l neas),
Dibuja un pol gono uniendo los puntos (xi , yi ) Anade la leyenda legend en (x, y ) Anade un t tulo Devuelve las coordenadas de n puntos senalados con el raton
b (puntos conectados por l neas), etc. xlim=c(inf,sup) , ylim=c(inf,sup) xlab=, ylab= main= sub=
Especica los l mites de los ejes Leyendas de los ejes T tulo del graco Subt tulo del graco
Parametros gracos
de mas de 60 Los gracos se pueden personalizar a traves parametros. La mayor a de los parametros (pero no todos) se pueden usar como argumentos en los comandos de alto y bajo nivel. En este caso tienen efecto en el graco que estamos dibujando en este momento. pueden jarse valores jos de los parametros Tambien mediante el comando par. Por ejemplo, par(bg=yelow) hace que todos los gracos tengan fondo amarillo.
Parametros gracos
La tabla siguiente contiene los principales parametros y el aspecto del graco que controlan
bg bty cex col lty lwd pch pty
Color del fondo (vease colors()) Tipo de ejes (o,l,c,7,u,] de los s Tamano mbolos y texto Color de los s mbolos y texto Tipo de l neas (1, continua; 2, discontinua; 3, puntos;...) Ancho de l neas (por defecto, lwd=1) Tipo de s mbolo de dibujo ( cuadrada s, o maximal m) Tipo de region
Un ejemplo
# Abrimos el fichero de los datos library(boot); data(salinity); attach(salinity) # El grafico mas simple plot(dis,sal) # Un grafico con opciones y par\{a}metros
14
12
Salinidad
22 24 26 28 dis 30 32
10
plot(dis,sal,col.axis=blue,xlab=Caudal,ylab=Salinidad,pch=15,bty=l, main=Salinidad en funcion del caudal,col=red) # Representamos (con doble grosor) la recta de # minimos cuadrados abline(lm(saldis),lwd=2)
sal
10
12
14
22
24
26
28
30
32
Caudal
Gracos especiales:
pairs
Gracos especiales:
coplot
y | f) genera un
Si x es una matriz o chero de datos pairs(x) produce una matriz de diagramas de Por ejemplo, el comando dispersion.
pairs(iris[,1:4],pch=c(rep(1,50),rep(3,50),rep(16,50)))
genera
2.0 3.0 4.0 0.5 1.5 2.5
setosa
Sepal.Length
3.0
Sepal.Width
1 2 3 4 5 6 7
Petal.Width
2.0
Petal.Length
1.5
Petal.Width
2.5
4.0
0.5
Petal.Length
4.5 5.5 6.5 7.5 1 2 3 4 5 6 7
Gracos especiales:
persp y contour
# Densidad normal bidimensional x <- seq(-3,3,0.1); y <- seq(-3,3,0.1) aux <- function(x,y){1/(2*pi)*exp(-0.5*(x2+y2))};z <- outer(x,y,aux) layout(matrix(1:2,1,2)) persp(x,y,z,theta=45,phi=30,d=3,expand=0.75);contour(x,y,z,axes=F)
parallel y
Sepal.Length
setosa
Petal.Width
versicolor
Density
z
x y
al entorno R p. 35/48 Introduccion
densityplot
Gracos especiales:
parallel
Gracos especiales:
densityplot
virginica
Petal.Width 0.25
0.10
Petal.Length
densityplot(Petal.Length)
Gracos especiales:
densityplot
Dispositivos gracos
El resultado de un comando graco no se asigna a un objeto sino a un
virginica
2.5 2.0 1.5 1.0 0.5
dispositivo (graphic device). El dispositivo por defecto es una ventana graca que se abre automaticamente.
versicolor
Density
0.0
setosa
2.5 2.0 1.5 1.0 0.5 0.0 2 4 6
Mediante windows() podemos abrir nuevas ventanas, a las que se asignan numeros diferentes. La ultima ventana abierta es la que activa. esta Con dev.set(n) activamos la ventana n.
Petal.Length
Otros dispositivos: (vease help(Devices)) pdf(): Env a los gracos a un chero .pdf jpeg(): Env a los gracos a un chero .jpg
al entorno R p. 39/48 Introduccion al entorno R p. 40/48 Introduccion
> layout(matrix(1:6,2,3,byrow=T));layout.show(6)
Graco de la practica
a la programacion en R Introduccion
En R el usuario puede programar sus propias funciones. es: El formato general de una funcion
14
14
Obs.16
12
10
sal
10
12
22
24
26 dis
28
30
32
Tampoco los argumentos son obligatorios. devuelve como resultado el valor de la ultima Una funcion expresion evaluada, o lo que aparezca en la sentencia return de valores a variables dentro de una funcion se Cualquier asignacion
22
24
26
28
30
32
en R Un ejemplo de funcion
> + + + mi.fun <- function(a,b=3,...){ z <- a + b + ... return(z) }
Comandos de control
En R podemos usar los comandos de control que son habituales en otros lenguajes. Algunos de ellos son:
http://www.R-project.org.
Venables, W.N. y Ripley, R.D. (1994). Modern Applied Statistics with S-Plus, Springer.
al entorno R p. 48/48 Introduccion