Está en la página 1de 20

Introducci

on

Vectores

Matrices, hojas de datos y listas

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.)

Introducci
on a R

Funciones

Introducci
on

Vectores

Matrices, hojas de datos y listas

Indice

Introduccion

Vectores

Matrices, hojas de datos y listas

Funciones

Asensio, Esteban & Laliena (E.U.P.L.A.)

Introducci
on a R

Funciones

Introducci
on

Vectores

Matrices, hojas de datos y listas

Funciones

R programming language

R es una implementaci
on 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.)

Introducci
on 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) + 232
> 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.)

Introducci
on a R

Introducci
on

Vectores

Matrices, hojas de datos y listas

Indice

Introduccion

Vectores

Matrices, hojas de datos y listas

Funciones

Asensio, Esteban & Laliena (E.U.P.L.A.)

Introducci
on a R

Funciones

Introducci
on

Vectores

Matrices, hojas de datos y listas

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
Asensio, Esteban & Laliena (E.U.P.L.A.)

> 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
Introducci
on a R

Funciones

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 repetici
on 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.)

Introducci
on 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"
[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.)

Introducci
on 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 FA

Asensio, Esteban & Laliena (E.U.P.L.A.)

Introducci
on a R

Introducci
on

Vectores

Matrices, hojas de datos y listas

Indice

Introduccion

Vectores

Matrices, hojas de datos y listas

Funciones

Asensio, Esteban & Laliena (E.U.P.L.A.)

Introducci
on a R

Funciones

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 especificar el n
umero de filas y columnas, por defecto la
matriz se construye por columnas.
> mx<-matrix(x,nrow=10)
> mx
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0.01 0.11 0.21 0.31 0.41 0.51 0.61
[2,] 0.02 0.12 0.22 0.32 0.42 0.52 0.62
[3,] 0.03 0.13 0.23 0.33 0.43 0.53 0.63
[4,] 0.04 0.14 0.24 0.34 0.44 0.54 0.64
[5,] 0.05 0.15 0.25 0.35 0.45 0.55 0.65
[6,] 0.06 0.16 0.26 0.36 0.46 0.56 0.66
[7,] 0.07 0.17 0.27 0.37 0.47 0.57 0.67
[8,] 0.08 0.18 0.28 0.38 0.48 0.58 0.68
[9,] 0.09
0.19
0.49 Introducci
0.59on0.69
Asensio,
Esteban0.29
& Laliena0.39
(E.U.P.L.A.)
aR

[,8]
0.71
0.72
0.73
0.74
0.75
0.76
0.77
0.78
0.79

[,9] [,10]
0.81 0.91
0.82 0.92
0.83 0.93
0.84 0.94
0.85 0.95
0.86 0.96
0.87 0.97
0.88 0.98
0.89 0.99

Introducci
on

Vectores

Matrices, hojas de datos y listas

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.)

Introducci
on a R

Funciones

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 filas y
columnas, donde el n
umero de filas 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.)

Introducci
on a R

Introducci
on

Vectores

Matrices, hojas de datos y listas

Funciones

Listas

Por u
ltimo, uno de los objetos mas genericos que esta definido 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.)

Introducci
on a R

Introducci
on

Vectores

Matrices, hojas de datos y listas

Indice

Introduccion

Vectores

Matrices, hojas de datos y listas

Funciones

Asensio, Esteban & Laliena (E.U.P.L.A.)

Introducci
on a R

Funciones

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 definir 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
[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.)

35

Introducci
on a R

40

45

50

55

60

65

Introducci
on

Vectores

Matrices, hojas de datos y listas

Funciones

Evaluaciones multiples 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.)

Introducci
on a R

Introducci
on

Vectores

Matrices, hojas de datos y listas

Integracion de funciones

Una operacion basica sobre funciones en estadstica es el calculo de


integrales, en R basta con usar la funci
on 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.)

Introducci
on a R

Funciones

Introducci
on

Vectores

Matrices, hojas de datos y listas

Funciones

Graficos de funciones

La funcion plot permite dibujar funciones y puntos en el plano

Para consultar parametros opcionales en un grafico ver ?plot

0.0

> plot(f,type="l",-1,1)

0.5

f (x)

1.0

1.5

Para dibujar la funcion f con un


trazado continuo entre x = 1
y x = 1 basta con usar el c
odigo

1.0

0.5

0.0
x

Asensio, Esteban & Laliena (E.U.P.L.A.)

Introducci
on a R

0.5

1.0

Introducci
on

Vectores

Matrices, hojas de datos y listas

Funciones

Graficos 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)

120

Estudio de distancias de frenado

100

80

60

Distancia

40

20

10

15

20

Asensio, Esteban & Laliena (E.U.P.L.A.) Velocidad


Introducci
on a R

25

También podría gustarte