You are on page 1of 20

Introducci on Vectores Matrices, hojas de datos y listas Funciones

Introduccion a R
Un lenguaje orientado a objetos
Cesar Asensio, Luis M. Esteban y Antonio R. Laliena
18 de noviembre de 2010
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones

Indice
1
Introduccion
2
Vectores
3
Matrices, hojas de datos y listas
4
Funciones
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
R programming language
R es una implementacion del lenguaje S desarrollado por Bell
Laboratories por Rick Becker, John Chambers y Allan Wilks
R fue creado por Robert Gentleman y Ross Ihaka (Departamento
de estadstica de la Universidad de Auckland)
Actualmente es desarrollado por el R Development Core Team, del
cual forma parte el propio Chambers
R es parte del GNU project y se construye como contribucion de
Estadsticos y Universidades de todo el mundo
http://www.r-project.org
La documentacion en castellano sobre R es gratuita y puede
bajarse de http://cran.r-project.org/other-docs.html
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Primeros pasos
Las operaciones matematicas mas basicas se consiguen con los smbolos
+,,,/ y ^
Por ejemplo, para calcular (7 3) +
3
2
2
> 7*3+3/2^2
[1] 21.75
Las funciones mas comunes tambien estan implementadas en R:
log(), log10(), exp(), sin(), cos(), tan(), sqrt()
La forma mas com un de asignar un valor a un objeto se construye con
el smbolo <-
> x<-12.34
> x
[1] 12.34
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones

Indice
1
Introduccion
2
Vectores
3
Matrices, hojas de datos y listas
4
Funciones
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Vectores
Para crear un vector, se utiliza la orden c()
> x<-c(0,2,5,1)
> x
[1] 0 2 5 1
Existen funciones para realizar operaciones sencillas sobre un vector
> max(x)
[1] 5
> min(x)
[1] 0
> which.max(x)
[1] 3
> which.min(x)
[1] 1
> which(x==2)
[1] 2
> which(x<2)
[1] 1 4
> sort(x)
[1] 0 1 2 5
> x^2
[1] 0 4 25 1
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Vectores especiales
Se pueden construir vectores con elementos tipo caracter, hay que
introducir los elementos entre comillas
> x<-c("a","b","a","c") [1] "a" "b" "a" "c"
Tambien se pueden crear secuencias de n umeros
> seq(1,10,by=2)
[1] 1 3 5 7 9
y se puede crear un vector como repeticion de elementos de otro vector
> x<-rep(c(0,1,2),c(12,4,7))
> x
[1] 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 2
o seleccionar aleatoriamente elementos de un vector con o sin
reemplazamiento
> sample(c(0,1,2,3),4,replace=T)
[1] 1 0 0 3
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Mas sobre vectores
Los vectores tambien tienen argumentos
> mode(x)
[1] "numeric"
> length(x)
[1] 23
El modo de un vector puede ser cambiado
> z<-as.character(x)
> z
[1] "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "1" "1" "1" "1" "2" "2" "2"
[20] "2" "2" "2" "2"
> as.numeric(z)
[1] 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 2
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Elementos de un vector
Para acceder a los elementos de un vector se pueden usar los corchetes
> x<-seq(0.01,1,by=0.01)
> length(x)
[1] 100
> x[12]
[1] 0.12
> x[12]<-0.23
> x[x==0.23]
[1] 0.23 0.23
> x[10:20]
[1] 0.10 0.11 0.23 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.20
> x[10:20]==0.23
[1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones

Indice
1
Introduccion
2
Vectores
3
Matrices, hojas de datos y listas
4
Funciones
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Matrices
La orden que construye una matriz en R es matrix, una matriz se
caracterza porque todos los elementos son del mismo tipo.
Hay que especicar el n umero de las y columnas, por defecto la
matriz se construye por columnas.
> mx<-matrix(x,nrow=10)
> mx
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0.01 0.11 0.21 0.31 0.41 0.51 0.61 0.71 0.81 0.91
[2,] 0.02 0.12 0.22 0.32 0.42 0.52 0.62 0.72 0.82 0.92
[3,] 0.03 0.13 0.23 0.33 0.43 0.53 0.63 0.73 0.83 0.93
[4,] 0.04 0.14 0.24 0.34 0.44 0.54 0.64 0.74 0.84 0.94
[5,] 0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95
[6,] 0.06 0.16 0.26 0.36 0.46 0.56 0.66 0.76 0.86 0.96
[7,] 0.07 0.17 0.27 0.37 0.47 0.57 0.67 0.77 0.87 0.97
[8,] 0.08 0.18 0.28 0.38 0.48 0.58 0.68 0.78 0.88 0.98
[9,] 0.09 0.19 0.29 0.39 0.49 0.59 0.69 0.79 0.89 0.99
[10,] 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Operaciones con matrices
En primer lugar generamos aleatoriamente dos matrices 3x3
> set.seed(10)
> A<-matrix(sample(seq(-10,10),replace=T,9),nrow=3)
> set.seed(7)
> B<-matrix(sample(seq(-10,10),replace=T,9),nrow=3)
El producto de matrices se construye como A %* %B
La inversa de una matriz como solve(A)
La transpuesta como t(A)
Los valores y vectores propios como eigen(A)
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Hojas de datos
Despues de los vectores, el objeto mas com un en R es la hoja de
datos (data.frame)
Un data.frame es un conjunto de elementos ordenados por las y
columnas, donde el n umero de las es com un y el tipo de
elementos que forman cada una de las columnas es igual dentro de
cada columna, pero puede ser distinto entre columnas.
Para ver algun ejemplo, vamos a cargar la libreria MASS y ver los
conjuntos de datos incluidos
library(MASS)
data()
Veamos por ejemplo Cars93 o cars
Las columnas de la hoja de datos tienen asignadas etiquetas:
names(cars)
Cada data.frame contiene unos objetos que son cada una de sus
columnas y pueden ser invocados: cars$speed
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Listas
Por ultimo, uno de los objetos mas genericos que esta denido en R es
una lista.
La lista es un vector, que incluye cualquier tipo de objetos como cada
uno de sus elementos.
> lista1<-list(cars,seq(1,100))
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones

Indice
1
Introduccion
2
Vectores
3
Matrices, hojas de datos y listas
4
Funciones
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Funciones en R
Una de las principales ventajas de R es que el usuario puede denir sus
propias funciones
> > f<-function(x){x/100}
> f(1)
[1] 0.01
> y<-seq(0,100,by=5)
> y
[1] 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
[20] 95 100
> g<-function(x){y[x]/100}
> g(3)
[1] 0.1
> h<-function(x){sum(y[1:x])}
> h(4)
[1] 30
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Evaluaciones m ultiples de funciones
Cuando se quieren hacer muchas evaluaciones sobre una misma funcion
se puede utilizar la orden sapply(x,FUN) que calcula las imagenes de la
funcion FUN sobre los elementos del vector x, devolviendo un vector o
una matriz
> sapply(seq(1,10),h)
[1] 0 5 15 30 50 75 105 140 180 225
Existen ordenes similares con distintos resultados como lappy, vapply,
mapply y replicate
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Integraci on de funciones
Una operacion basica sobre funciones en estadstica es el calculo de
integrales, en R basta con usar la funcion integrate
> f<-function(x){3/2*x^2}
> f
function(x){3/2*x^2}
> integrate(f,-1,1)
1 with absolute error < 1.1e-14
> integrate(f,0,1)
0.5 with absolute error < 5.6e-15
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Gracos de funciones
La funcion plot permite dibujar funciones y puntos en el plano
Para dibujar la funcion f con un
trazado continuo entre x = 1
y x = 1 basta con usar el codigo
> plot(f,type="l",-1,1)
Para consultar parametros op-
cionales en un graco ver ?plot
1.0 0.5 0.0 0.5 1.0
0
.
0
0
.
5
1
.
0
1
.
5
x
f

(
x
)
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R
Introducci on Vectores Matrices, hojas de datos y listas Funciones
Gracos de puntos
Si lo que se quiere es dibujar pares de puntos bastara con usar la orden
plot(x,y,type=p)
> plot(cars$speed,cars$dist,type="p", xlab=Velocidad,
+ ylab=Distancia,main=Estudio de distancias de frenado)
5 10 15 20 25
0
2
0
4
0
6
0
8
0
1
0
0
1
2
0
Estudio de distancias de frenado
Velocidad
D
i
s
t
a
n
c
i
a
Asensio, Esteban & Laliena (E.U.P.L.A.) Introduccion a R

You might also like