Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
estadstico R
Mdulo 1
Alberto Muoz
Marzo 2012
Alberto Muoz
R como calculadora
R puede ser utilizado como caluladora interactiva:
Alberto Muoz
R como calculadora
Para obtener informacin adicional:
> cos(pi)
[1] -1 Los ngulos estn
> cos(3*pi/2) en radianes, no
[1] -1.836910e-16 en grados.
>
round(cos(3*pi/2)
)
[1] 0
Alberto Muoz
Estructuras de datos en R
Vectores
Se pueden definir vectores numricos, pero tambin lgicos y de texto.
Alberto Muoz
Estructuras de datos en R
Ms sobre valores faltantes:
> x = c(1,2,3,NA,4,5)
> is.na(x)
[1] FALSE FALSE FALSE TRUE FALSE FALSE
> x[x>2]
[1] 3 NA 4 5
> x*2
[1] 2 4 6 NA 8 10
> x<-x[!is.na(x)]
> x
[1] 1 2 3 4 5
Factores
La funcin factor codifica un vector como un factor (categora, con valores predefinidos).
> students.origin =
c("london","paris","madrid","madrid","paris","rome","london","rome","madrid","paris","bonn",
"london","rome","paris","madrid")
> length(students.origin)
[1] 15
> fstudents = as.factor(students.origin)
> fstudents
[1] london paris madrid madrid paris rome london rome madrid paris bonn london
rome paris madrid
Levels: bonn london madrid paris rome
> levels(fstudents)
[1] "bonn" "london" "madrid" "paris" "rome"
> summary(fstudents)
bonn london madrid paris rome
1 3 4 4 3 Alberto Muoz
Estructuras de datos en R
> students.Alturas = c(1.83, 1.71, 1.79, 1.64, 1.74, 1.81, 1.62, 1.84, 1.68, 1.81,
1.82, 1.74, 1.84, 1.61, 1.84)
> tapply(students.Alturas,fstudents,mean)
bonn london madrid paris rome
1.8200 1.7300 1.7375 1.7175 1.8300
La funcin tapply() aplica la funcin mean() a los grupos de alturas de estudiantes definidos por el factor fstudents.
Factores ordenados
Usamos factores ordenados cuando existe algn orden. Para transformar un factor en ordenado: ordered().
Alberto Muoz
Ejemplos de funciones sobre matrices
Una matriz simple: Podemos aadir filas y columnas:
> mat["juan",]
Edad Peso Altura
20 65 174
> mat[,"Edad"]
juan maria ana
20 22 19
> mat[,c("Edad","Altura")]
Edad Altura
juan 20 174
maria 22 180
Ana 19 170
> dimnames(mat)
[[1]]
[1] juan" "maria" "ana"
[[2]]
[1] "Edad" "Peso" "Altura
> apply(mat,2,mean)
Edad Peso Altura
20.33333 67.66667 174.66667 Alberto Muoz
Ms sobre arrays
Un array es la generalizacin de una matriz al caso multidimensional:
array(data, dimensions)
Ejemplo:
> array(1:12,c(2,3,2))
, , 1
, , 2
Alberto Muoz
Un array multidimensional
A continuacin creamos un array multidimensional para guardar la media de Edad, Altura y Peso
de hombres y mujeres correspondientes a dos ciudades:
> x = array(c(45,46,65,55,170,167,48,49,68,56,169,165),c(2,3,2))
> x
, , 1
, , 2
, , leganes
Alberto Muoz
Un array multidimensional
Para calcular la media de las variables Edad, Altura y Peso:
Alberto Muoz
Listas
En una lista se pueden mezclar objetos de distintos tipos.
Se puede dar nombre a cada componente de una lista, y acceder a los elementos de una lista
bien por su posicin, bien por su nombre.
> a = list(cosa="piedra",peso="8")
> a Una lista puede contener otras listas:
$cosa
[1] "piedra" > b = list("lista que referencia a otra
lista",a)
$peso >b
[1] "8" [[1]]
[1] "lista que referencia a otra lista"
> a$cosa
[1] "piedra" [[2]]
> a[1] [[2]]$cosa
$cosa [1] "piedra"
[1] "piedra"
[[2]]$peso
> a[[1]] [1] "8"
[1] "piedra
Alberto Muoz
Data Frames
Data frames: Estructuras que generalizan el concepto de matriz.
En una matriz todos los elementos son del mismo tipo: numerico, carcter, lgico
> mat2
Edad Peso Altura lugar
Juan "20" "65" "174" "london"
maria "22" "70" "180" "madrid"
Ana "19" "68" "170" "skopje"
> mean(mat[,"Edad"])
[1] 20.33333
> mean(mat2[,"Edad"])
[1] NA Alberto Muoz
Warning messEdad:
argument is not numeric or logical: returning NA in: mean.default(mat2[, "Edad"])
Data Frames
Ahora creamos un data frame:
Alberto Muoz
Leyendo y escribiendo datos
Vamos a aprender a crear datos de cero, y a leerlos y escribirlos de y a disco.
Alberto Muoz
Leyendo y escribiendo datos
Para elegir un fichero directamente del directorio: Consideremos ahora el fichero numeros.txt,
que contiene los nmeros 1 2 3 4 5 6 7 8 9
choose.files() y queremos convertirlo en una matriz 3 x 3:
> write.table(numeros,"e:\\numeros2.txt",row.names=F,col.names=F)
> write.table(gente,"e:\\gente2.txt")
Sin comillas:
Alberto Muoz
Objetos y Clases
R es un lenguaje orientado a objetos. Cada objeto en R tiene un tipo y es miembro de una clase.
Hasta ahora hemos encontrado varias clases: vectores carcter, numricos, data frames, listas, arrays.
> class(a)
[1] "list
> tabla = table(color.pelo,color.ojos)
> class(tabla)
[1] "table
> class(mat3)
[1] "data.frame"
> class(mean)
[1] "function"
En el ltimo ejemplo podemos ver que una funcin es un objeto en R de la clase function.
Algunas funciones se asocian con una clase especfica, y reciben el nombre de mtodos.
En R, mtodos para diferentes clases pueden compartir el mismo nombre, y entonces se llaman
funciones genricas.
Por ejemplo, + es una funcin genrica:
> as.Date("2009-02-28") + 7
[1] "2009-03-07"
Alberto Muoz