Documentos de Académico
Documentos de Profesional
Documentos de Cultura
on
Vectores
Introduccion a R
Un lenguaje orientado a objetos
18 de noviembre de 2010
Introducci
on a R
Funciones
Introducci
on
Vectores
Indice
Introduccion
Vectores
Funciones
Introducci
on a R
Funciones
Introducci
on
Vectores
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
Introducci
on a R
Introducci
on
Vectores
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
Indice
Introduccion
Vectores
Funciones
Introducci
on a R
Funciones
Introducci
on
Vectores
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
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
Funciones
Introducci
on a R
Introducci
on
Vectores
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
Introducci
on a R
Introducci
on
Vectores
Indice
Introduccion
Vectores
Funciones
Introducci
on a R
Funciones
Introducci
on
Vectores
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
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)
Introducci
on a R
Funciones
Introducci
on
Vectores
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
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))
Introducci
on a R
Introducci
on
Vectores
Indice
Introduccion
Vectores
Funciones
Introducci
on a R
Funciones
Introducci
on
Vectores
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
Funciones
Introducci
on a R
Introducci
on
Vectores
Integracion de funciones
Introducci
on a R
Funciones
Introducci
on
Vectores
Funciones
Graficos de funciones
0.0
> plot(f,type="l",-1,1)
0.5
f (x)
1.0
1.5
1.0
0.5
0.0
x
Introducci
on a R
0.5
1.0
Introducci
on
Vectores
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
100
80
60
Distancia
40
20
10
15
20
25