Curso de R - Iniciación a R - aficionporlafotografia.com · Curso de Iniciación a R ... del...

Preview:

Citation preview

Curso de Iniciación a RIbon Martínez

http://fdesnedecor.wordpress.com/

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 1/51

Proyecto R - ¿Qué es R?

R es un lenguaje de programación para entorno estadístico y gráficos. La

base del proyecto se encuentra en la siguiente dirección:

http://www.r-project.org/

En esta dirección podremos descargar la última versión del programa así

como acceder a toda la documentación, paquetes y librerías anexas, foros yotros proyectos relacionados.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 2/51

Proyecto R - ¿Qué es R?

Se trata de un proyecto de software libre, resultado de la implementación GNU

del premiado lenguaje S. R y S-Plus -versión comercial de S- son,probablemente, los dos lenguajes más utilizados en investigación por la

comunidad estadística, siendo además muy populares en el campo de lainvestigación biomédica, la bioinformática y las matemáticas financieras. R se

distribuye bajo la licencia GNU GPL y está disponible para los sistemasoperativos Windows, Macintosh, Unix y GNU/Linux.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 3/51

Proyecto R - CRAN

El mantenimiento del Proyecto R se realiza a traves del CRAN The

Comprehensive R Archive Network donde se encuentran las últimas versionesdel programa R y los paquetes anexos. El Mirrora en España es

http://cran.es.r-project.org/.

aes un sitio Web que contiene una replica exacta de otro. Estas replicas u espejos

se suelen crear para facilitar grandes descargas y facilitar el acceso a la informacion aun

cuando haya fallos en el servicio del servidor principal

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 4/51

Proyecto R - Propiedades

• La capacidad de combinar, sin fisuras, análisis “preempaquetados” conanálisis ad-hoc, específicos para una situación: capacidad de manipular y

modificar datos y funciones.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 5/51

Proyecto R - Propiedades

• La capacidad de combinar, sin fisuras, análisis “preempaquetados” conanálisis ad-hoc, específicos para una situación: capacidad de manipular y

modificar datos y funciones.

• Los gráficos de alta calidad: visualización de datos y producción de

gráficos para artículos.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 5/51

Proyecto R - Propiedades

• La capacidad de combinar, sin fisuras, análisis “preempaquetados” conanálisis ad-hoc, específicos para una situación: capacidad de manipular y

modificar datos y funciones.

• Los gráficos de alta calidad: visualización de datos y producción de

gráficos para artículos.

• La comunidad de R es muy dinámica, con gran crecimiento del número depaquetes, e integrada por estadísticos de gran renombre (ej., J.

Chambers, L. Terney, B. Ripley, D. Bates, . . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 5/51

Proyecto R - Propiedades

• La capacidad de combinar, sin fisuras, análisis “preempaquetados” conanálisis ad-hoc, específicos para una situación: capacidad de manipular y

modificar datos y funciones.

• Los gráficos de alta calidad: visualización de datos y producción de

gráficos para artículos.

• La comunidad de R es muy dinámica, con gran crecimiento del número depaquetes, e integrada por estadísticos de gran renombre (ej., J.

Chambers, L. Terney, B. Ripley, D. Bates, . . . ).

• Hay extensiones específicas a nuevas áreas como bioinformática,geoestadística y modelos gráficos.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 5/51

Proyecto R - Propiedades

• La capacidad de combinar, sin fisuras, análisis “preempaquetados” conanálisis ad-hoc, específicos para una situación: capacidad de manipular y

modificar datos y funciones.

• Los gráficos de alta calidad: visualización de datos y producción de

gráficos para artículos.

• La comunidad de R es muy dinámica, con gran crecimiento del número depaquetes, e integrada por estadísticos de gran renombre (ej., J.

Chambers, L. Terney, B. Ripley, D. Bates, . . . ).

• Hay extensiones específicas a nuevas áreas como bioinformática,geoestadística y modelos gráficos.

• Es un lenguaje orientado a objetos.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 5/51

Proyecto R - Instalación

Depende del sistema operativo, pero todo se puede encontrar en

http://cran.es.r-project.org/bin

Para Windows se puede obtener un ejecutable desde

http://cran.es.r-project.org/bin/windows/base

Al ejecutar el archivo se instalará el sistema base y los paquetes

recomendados.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 6/51

Proyecto R - Paquetes

R consta de un sistema base y de paquetes adicionales que extienden sufuncionalidad. Podemos encontrarlos en

http://cran.es.r-project.org/src/contrib/PACKAGES.html

Tipos de paquetes:

• Los que forman parte del sistema base (ctest, graphics, . . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 7/51

Proyecto R - Paquetes

R consta de un sistema base y de paquetes adicionales que extienden sufuncionalidad. Podemos encontrarlos en

http://cran.es.r-project.org/src/contrib/PACKAGES.html

Tipos de paquetes:

• Los que forman parte del sistema base (ctest, graphics, . . . ).

• Los que no son parte del sistema base, pero son recommended (xlsx,survival, nlme, . . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 7/51

Proyecto R - Paquetes

R consta de un sistema base y de paquetes adicionales que extienden sufuncionalidad. Podemos encontrarlos en

http://cran.es.r-project.org/src/contrib/PACKAGES.html

Tipos de paquetes:

• Los que forman parte del sistema base (ctest, graphics, . . . ).

• Los que no son parte del sistema base, pero son recommended (xlsx,survival, nlme, . . . ).

• Otros paquetes (UsingR, foreing, . . . ). Éstos se han de seleccionar einstalar individualmente.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 7/51

Proyecto R - Documentación

Los manuales de R, incluidos en toda instalación.

• An introduction to Ra.

aDocumento de obligada lectura

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 8/51

Proyecto R - Documentación

Los manuales de R, incluidos en toda instalación.

• An introduction to Ra.

• Writing R extensions.

aDocumento de obligada lectura

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 8/51

Proyecto R - Documentación

Los manuales de R, incluidos en toda instalación.

• An introduction to Ra.

• Writing R extensions.

• R data import/export.

aDocumento de obligada lectura

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 8/51

Proyecto R - Documentación

Los manuales de R, incluidos en toda instalación.

• An introduction to Ra.

• Writing R extensions.

• R data import/export.

• The R language definition.

aDocumento de obligada lectura

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 8/51

Proyecto R - Documentación

Los manuales de R, incluidos en toda instalación.

• An introduction to Ra.

• Writing R extensions.

• R data import/export.

• The R language definition.

• R installation and administration.

aDocumento de obligada lectura

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 8/51

Primeros pasos - Inicio

Iniciar una sesión de R

• Hacer doble-click en el icono. Se abrirá Rgui.exe.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 9/51

Primeros pasos - Inicio

Iniciar una sesión de R

• Hacer doble-click en el icono. Se abrirá Rgui.exe.

• Desde una ventana del sistema ejecutar Rterm.exe. Parecido a R en Unixo Linux.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 9/51

Primeros pasos - Inicio

Iniciar una sesión de R

• Hacer doble-click en el icono. Se abrirá Rgui.exe.

• Desde una ventana del sistema ejecutar Rterm.exe. Parecido a R en Unixo Linux.

• Iniciar R desde Tinn-R.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 9/51

Primeros pasos - GUI de R

El programa R viene con una GUI (del inglés Graphical User Interface) que

facilita la interacción entre el usuario y el programa. Hay otros proyectosabiertos que proporcionan otras GUI para R:

• JGR o Java GUI for R, una terminal de R multiplataforma basada en Java.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 10/51

Primeros pasos - GUI de R

El programa R viene con una GUI (del inglés Graphical User Interface) que

facilita la interacción entre el usuario y el programa. Hay otros proyectosabiertos que proporcionan otras GUI para R:

• JGR o Java GUI for R, una terminal de R multiplataforma basada en Java.

• R Commander (Rcmdr), una interfaz gráfica multiplataforma basada entcltk.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 10/51

Primeros pasos - GUI de R

El programa R viene con una GUI (del inglés Graphical User Interface) que

facilita la interacción entre el usuario y el programa. Hay otros proyectosabiertos que proporcionan otras GUI para R:

• JGR o Java GUI for R, una terminal de R multiplataforma basada en Java.

• R Commander (Rcmdr), una interfaz gráfica multiplataforma basada entcltk.

• RExcel, que permite usar R y Rcmdr desde Microsoft Excel.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 10/51

Primeros pasos - GUI de R

El programa R viene con una GUI (del inglés Graphical User Interface) que

facilita la interacción entre el usuario y el programa. Hay otros proyectosabiertos que proporcionan otras GUI para R:

• JGR o Java GUI for R, una terminal de R multiplataforma basada en Java.

• R Commander (Rcmdr), una interfaz gráfica multiplataforma basada entcltk.

• RExcel, que permite usar R y Rcmdr desde Microsoft Excel.

• rggobi, una interfaz a GGobi para visualización.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 10/51

Primeros pasos - GUI de R

El programa R viene con una GUI (del inglés Graphical User Interface) que

facilita la interacción entre el usuario y el programa. Hay otros proyectosabiertos que proporcionan otras GUI para R:

• JGR o Java GUI for R, una terminal de R multiplataforma basada en Java.

• R Commander (Rcmdr), una interfaz gráfica multiplataforma basada entcltk.

• RExcel, que permite usar R y Rcmdr desde Microsoft Excel.

• rggobi, una interfaz a GGobi para visualización.

• RKWard, basado en KDE.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 10/51

Primeros pasos - GUI de R

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 11/51

Primeros pasos - Primera sesión

> rnorm(3)

[1] -0.39413467 0.08327595 -0.63666036

> x <- rnorm(3)

> summary(x)

Min. 1st Qu. Median Mean 3rd Qu. Max.

-0.6043 -0.5263 -0.4484 -0.4339 -0.3487 -0.2490

> w <- summary(x)

> w

Min. 1st Qu. Median Mean 3rd Qu. Max.

-0.6043 -0.5263 -0.4484 -0.4339 -0.3487 -0.2490

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 12/51

Primeros pasos - R como calculadora

> 2 + 2

[1] 4

> sqrt(10)

[1] 3.162278

> 2 * 3 * 4 * 5

[1] 120

> 1000 * (1 + 0.075)^5 - 1000

[1] 435.6293

> sin(c(0, 30, 45, 60, 90) * pi/180)

[1] 0.0000000 0.5000000 0.7071068 0.8660254 1.0000000

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 13/51

Primeros pasos - La ayuda de R

• ?rnorm

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

• ?help.search

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

• ?help.search

• help.search(“normal”)

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

• ?help.search

• help.search(“normal”)

• ?apropos

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

• ?help.search

• help.search(“normal”)

• ?apropos

• apropos(“normal”)

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

• ?help.search

• help.search(“normal”)

• ?apropos

• apropos(“normal”)

• ?demo

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - La ayuda de R

• ?rnorm

• help.start()

• ?help.search

• help.search(“normal”)

• ?apropos

• apropos(“normal”)

• ?demo

• demo(graphics); demo(persp); demo(lm.glm)

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/51

Primeros pasos - Paquetes adicionales

• Desde el menú Packages->Install package(s).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/51

Primeros pasos - Paquetes adicionales

• Desde el menú Packages->Install package(s).

• Primero nos pide seleccionar el “CRAN mirror”.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/51

Primeros pasos - Paquetes adicionales

• Desde el menú Packages->Install package(s).

• Primero nos pide seleccionar el “CRAN mirror”.

• Desde R, con install.packages().

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/51

Primeros pasos - Paquetes adicionales

• Desde el menú Packages->Install package(s).

• Primero nos pide seleccionar el “CRAN mirror”.

• Desde R, con install.packages().

• Desde una “ventana del sistema”.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/51

Primeros pasos - Paquetes adicionales

• Desde el menú Packages->Install package(s).

• Primero nos pide seleccionar el “CRAN mirror”.

• Desde R, con install.packages().

• Desde una “ventana del sistema”.

• Rcmd INSTALL paquete

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/51

Primeros pasos - Paquetes adicionales

• Desde el menú Packages->Install package(s).

• Primero nos pide seleccionar el “CRAN mirror”.

• Desde R, con install.packages().

• Desde una “ventana del sistema”.

• Rcmd INSTALL paquete

• Desde la interface de Tinn-R.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/51

Primeros pasos - Un editor adecuado

¿Por qué usar R desde un editor?

• El uso de scripts y el mantenimiento del código ordenado y comentado esuna buena práctica estadística.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 16/51

Primeros pasos - Un editor adecuado

¿Por qué usar R desde un editor?

• El uso de scripts y el mantenimiento del código ordenado y comentado esuna buena práctica estadística.

• Colores de sintaxis, completa paréntesis, . . .

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 16/51

Primeros pasos - Un editor adecuado

¿Por qué usar R desde un editor?

• El uso de scripts y el mantenimiento del código ordenado y comentado esuna buena práctica estadística.

• Colores de sintaxis, completa paréntesis, . . .

• Una interface común para otros paquetes estadísticos (SAS, XLispStat,

Arc, Excel, . . . ), numéricos (Octave, . . . ) o procesador de texto (LaTeX,. . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 16/51

Primeros pasos - Un editor adecuado

¿Por qué usar R desde un editor?

• El uso de scripts y el mantenimiento del código ordenado y comentado esuna buena práctica estadística.

• Colores de sintaxis, completa paréntesis, . . .

• Una interface común para otros paquetes estadísticos (SAS, XLispStat,

Arc, Excel, . . . ), numéricos (Octave, . . . ) o procesador de texto (LaTeX,. . . ).

• Una buena elección: Tinn-R.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 16/51

Primeros pasos - El primer ejemplo

Sea X una variable aleatorio con distribucióon exponencial de parámetro α y

X1,X2, . . . , Xn una muestra aleatoria simple. Se sabe que la distribución deZ = n ·min {X1, X2, . . . , Xn} es exponencial de parámetro α.

> alpha <- 0.01

> n <- 50

> m <- 1000

> datos <- matrix(rexp(n * m, alpha), ncol = n)

> fz <- function(x) n * min(x)

> z <- apply(datos, 1, fz)

> mean(z)

[1] 104.7786

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 17/51

Primeros pasos - El primer ejemplo

> hist(z, freq = F)

> points(dexp(0:600, alpha), type = "l")

> ks.test(z, "pexp", alpha)

One-sample Kolmogorov-Smirnov test

data: z

D = 0.045, p-value = 0.03495

alternative hypothesis: two-sided

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 18/51

Objetos de R - ¿Qué son?

Casi todo en R es un objeto, incluyendo funciones y estructuras de datos.

• Para saber los objetos que tenemos en el espacio de trabajo utilizaremosls().

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 19/51

Objetos de R - ¿Qué son?

Casi todo en R es un objeto, incluyendo funciones y estructuras de datos.

• Para saber los objetos que tenemos en el espacio de trabajo utilizaremosls().

• Escribir el nombre de un objeto muestra su contenido: mean.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 19/51

Objetos de R - ¿Qué son?

Casi todo en R es un objeto, incluyendo funciones y estructuras de datos.

• Para saber los objetos que tenemos en el espacio de trabajo utilizaremosls().

• Escribir el nombre de un objeto muestra su contenido: mean.

• Para guardar el contenido del espacio de trabajo se pueden utilizar las

funciones save.image() y save(<objetos>,file=“nombre.RData”).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 19/51

Objetos de R - ¿Qué son?

Casi todo en R es un objeto, incluyendo funciones y estructuras de datos.

• Para saber los objetos que tenemos en el espacio de trabajo utilizaremosls().

• Escribir el nombre de un objeto muestra su contenido: mean.

• Para guardar el contenido del espacio de trabajo se pueden utilizar las

funciones save.image() y save(<objetos>,file=“nombre.RData”).

• Se puede acceder a objetos de la carpeta de trabajo o del camino queespecifiquemos.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 19/51

Objetos de R - Tipos de objetos

• Objetos del lenguaje

• Llamadas

• Expresiones

• Nombres

• Expresiones

• Funciones

• Lista de argumentos

• Código

• Entorno

• sin objeto: NULL

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 20/51

Objetos de R - Vector

Vector: Colección ordenada de elementos del mismo tipo

> x <- c(1, 2, 3)

> x

[1] 1 2 3

> y <- c(FALSE, TRUE, TRUE)

> y

[1] FALSE TRUE TRUE

> z <- c("a", "b", "c")

> z

[1] "a" "b" "c"

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 21/51

Objetos de R - Array

Array: Generalización multidimensional del vector. Elementos del mismo tipo.

> mat <- matrix(rnorm(9), ncol = 3)

> mat

[,1] [,2] [,3]

[1,] -0.8546732 -0.3515071 0.1269125

[2,] 1.7731786 -0.3079295 -0.0849302

[3,] -0.5036908 -0.9784104 -0.4556152

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 22/51

Objetos de R - Data frame

data frame: Como el array, pero con columnas de diferentes tipos. Es el

objeto más habitual para los datos experimentales.

> dades <- data.frame(ID = c("gen0", "genB", "genZ"), subj1 = c(10,

+ 25, 33), subj2 = c(NA, 34, 15), oncogen = c(TRUE, TRUE, FALSE),

+ loc = c(1, 30, 125))

> dades

ID subj1 subj2 oncogen loc

1 gen0 10 NA TRUE 1

2 genB 25 34 TRUE 30

3 genZ 33 15 FALSE 125

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 23/51

Objetos de R - Factor

factor: Tipo de vector para datos cualitativos.

> x <- c(1, 2, 2, 1, 1, 2, 1, 2, 1)

> x

[1] 1 2 2 1 1 2 1 2 1

> x <- factor(c(1, 2, 2, 1, 1, 2, 1, 2, 1))

> x

[1] 1 2 2 1 1 2 1 2 1

Levels: 1 2

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 24/51

Objetos de R - Lista

list: vector generalizado. Cada lista está formada por componentes que

pueden ser de distinto tipo. Son contenedores generales de datos. Muyflexibles, pero sin estructura. Muchas funciones devuelven una lista o conjunto

de resultados de distinta longitud y distinto tipo.

> una.lista <- list(vec = rnorm(5), mat = matrix(rnorm(4), ncol = 2))

> una.lista

$vec

[1] 0.1102119 -0.1345766 0.7536878 -0.8123064 -0.6643130

$mat

[,1] [,2]

[1,] -0.43561329 -1.400254

[2,] -0.06045704 -1.749240

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 25/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

• Tipo: Tipo de los vectores o arrays: double, character, . . . typeof

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

• Tipo: Tipo de los vectores o arrays: double, character, . . . typeof

• Nombres: Etiquetas de los elementos individuales de un vector o lista:names

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

• Tipo: Tipo de los vectores o arrays: double, character, . . . typeof

• Nombres: Etiquetas de los elementos individuales de un vector o lista:names

• Dimensiones: Dimensiones de los arrays (alguna puede ser cero): dim

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

• Tipo: Tipo de los vectores o arrays: double, character, . . . typeof

• Nombres: Etiquetas de los elementos individuales de un vector o lista:names

• Dimensiones: Dimensiones de los arrays (alguna puede ser cero): dim

• Dimnames: Nombres de las dimensiones de los arrays: dimnames

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

• Tipo: Tipo de los vectores o arrays: double, character, . . . typeof

• Nombres: Etiquetas de los elementos individuales de un vector o lista:names

• Dimensiones: Dimensiones de los arrays (alguna puede ser cero): dim

• Dimnames: Nombres de las dimensiones de los arrays: dimnames

• Clase: Vector alfanumérico con la lista de las clases del objeto: class

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

Atributos de los objetos

• Modo: Tipo básico en un vector o array: lógico, entero, real, carácter,

. . . mode

• Tipo: Tipo de los vectores o arrays: double, character, . . . typeof

• Nombres: Etiquetas de los elementos individuales de un vector o lista:names

• Dimensiones: Dimensiones de los arrays (alguna puede ser cero): dim

• Dimnames: Nombres de las dimensiones de los arrays: dimnames

• Clase: Vector alfanumérico con la lista de las clases del objeto: class

• Otros: Atributos de una serie temporal.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 26/51

Objetos de R - Atributos

> x <- 1:15

> length(x)

[1] 15

> y <- matrix(5, nrow = 3, ncol = 4)

> dim(y)

[1] 3 4

> is.vector(x)

[1] TRUE

> is.vector(y)

[1] FALSE

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 27/51

Objetos de R - Atributos

> x1 <- 1:5

> x2 <- c(1, 2, 3, 4, 5)

> x3 <- "patata"

> x4 <- TRUE

> typeof(x1)

[1] "integer"

> typeof(x2)

[1] "double"

> typeof(x3)

[1] "character"

> typeof(x4)

[1] "logical"

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 28/51

Objetos de R - Atributos

> w <- data.frame(Suj = c("Suj 1", "Suj 2", "Suj 3"), Pes = c(56.1,

+ 73.6, 81.2), Alt = c(145, 165, 172))

> attributes(w)

$names

[1] "Suj" "Pes" "Alt"

$row.names

[1] 1 2 3

$class

[1] "data.frame"

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 29/51

Objetos de R - Atributos

> f1 <- function(x) {

+ return(2 * x)

+ }

> attributes(f1)

$source

[1] "function(x) {return(2 * x)}"

> is.function(f1)

[1] TRUE

> f1(4)

[1] 8

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 30/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

• Los nombres no pueden empezar con un número.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

• Los nombres no pueden empezar con un número.

• R es “case-sensitive”: x != X.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

• Los nombres no pueden empezar con un número.

• R es “case-sensitive”: x != X.

• Hay nombres reservados (“function”, “if”, . . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

• Los nombres no pueden empezar con un número.

• R es “case-sensitive”: x != X.

• Hay nombres reservados (“function”, “if”, . . . ).

• Mejor evitar nombres que R usa (ej., “c”).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

• Los nombres no pueden empezar con un número.

• R es “case-sensitive”: x != X.

• Hay nombres reservados (“function”, “if”, . . . ).

• Mejor evitar nombres que R usa (ej., “c”).

• Las asignaciones se hacen con “<-” y se recomiendan los espacios. El

signo “=” se reserva para los argumentos de las funciones.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Nombres

• Los nombres válidos para un objeto son combinaciones de letras,números y el punto (“.”).

• Los nombres no pueden empezar con un número.

• R es “case-sensitive”: x != X.

• Hay nombres reservados (“function”, “if”, . . . ).

• Mejor evitar nombres que R usa (ej., “c”).

• Las asignaciones se hacen con “<-” y se recomiendan los espacios. El

signo “=” se reserva para los argumentos de las funciones.

• La función make.names convierte una cadena de texto en una cadenaque pueda utilizarse como nombre de una variable en una matriz,

data.frame, . . .

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 31/51

Objetos de R - Operadores aritméticos

• Suma +, resta -, multiplicación *, división /

• Potencia , raíz cuadrada sqrt

• División entera %/%, módulo: resto de la divisit’on entera %%

• Logaritmos log, log10, log2, logb(x, base), exponencial exp

• Trigonométricas sin, cos, tan, asin, acos, atan

• Otras max, min, range, pmax, pmin, mean, median, var, sd, quantile, sum,prod, diff, cumsum, cumprod, cummax, cummin

Podemos ver sus argumentos y su utilización mediante el comando

help(funcion). Además, podemos ver algunos ejemplos con el comandoexample(funcion).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 32/51

Potencia gráfica de R

• R incluye muchas y variadas funciones para hacer gráficos.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 33/51

Potencia gráfica de R

• R incluye muchas y variadas funciones para hacer gráficos.

• El sistema permite desde gráficos muy simples a figuras de calidad para

incluir en artículos y libros.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 33/51

Potencia gráfica de R

• R incluye muchas y variadas funciones para hacer gráficos.

• El sistema permite desde gráficos muy simples a figuras de calidad para

incluir en artículos y libros.

• Sólo examinaremos la superficie. Más detalles en el libro R Graphics dePaul Murrell.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 33/51

Potencia gráfica de R

• R incluye muchas y variadas funciones para hacer gráficos.

• El sistema permite desde gráficos muy simples a figuras de calidad para

incluir en artículos y libros.

• Sólo examinaremos la superficie. Más detalles en el libro R Graphics dePaul Murrell.

• También podemos ver un buen conjunto de ejemplos con demo(graphics).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 33/51

Potencia gráfica de R

• R incluye muchas y variadas funciones para hacer gráficos.

• El sistema permite desde gráficos muy simples a figuras de calidad para

incluir en artículos y libros.

• Sólo examinaremos la superficie. Más detalles en el libro R Graphics dePaul Murrell.

• También podemos ver un buen conjunto de ejemplos con demo(graphics).

• El comando plot es uno de los más utilizados para realizar gráficos.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 33/51

Potencia gráfica de R

• R incluye muchas y variadas funciones para hacer gráficos.

• El sistema permite desde gráficos muy simples a figuras de calidad para

incluir en artículos y libros.

• Sólo examinaremos la superficie. Más detalles en el libro R Graphics dePaul Murrell.

• También podemos ver un buen conjunto de ejemplos con demo(graphics).

• El comando plot es uno de los más utilizados para realizar gráficos.

• Si escribimos plot(x, y) donde x e y son vectores con n coordenadas,entonces R representa el gráfico de dispersión con los puntos de

coordenadas (xi, yi).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 33/51

Potencia gráfica de R

El principal comando para generar un grá-

fico en R es plot. Si generamos un vec-tor aleatorio de dimensión 10. Uno de los

argumentos más útiles es type cuyos pará-metros pueden ser: p para puntos, l para

líneas, . . . (?plot). Para representarlo gráfi-camente sólo tenemos que escribir:

> x<-rnorm(10)> plot(x)

2 4 6 8 10

−2

−1

01

2

Index

x

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 34/51

Potencia gráfica de R

Podemos modificar ciertos atributos del

gráfico, por ejemplo el color de la línea(col) y el tamaño de la línea (lwd). R en-

tiende como argumentos los nombres delos colores: red, green, blue, . . . . Podemos

ver los colores predefinidos con la funcióncolours(). Si escribimos:

> plot(x, col=“red”, type=“l”, lwd=5)2 4 6 8 10

−2

−1

01

2

Index

x

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 35/51

Potencia gráfica de R

Podemos modificar los atributos de los

límites del gráfico (xlim,ylim), las etiquetasde los ejes (xlab, ylab) y añadir un título

(main). Podemos escribir:> plot(x, col=“red”, type=“l”, lwd=5,

ylim=c(-4,4), xlab=“Eje X”, ylab=“EjeY”, main=“Nuestra primera gráfica en R”)

2 4 6 8 10

−4

−2

02

4

Nuestra primera gráfica en R

Eje X

Eje

Y

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 36/51

Potencia gráfica de R - Líneas y puntos

Sobre un gráfico creado podemos añadir

información secundaria en forma de líneas(lines, abline) y puntos (points). Podemos

escribir:> plot(x, col=“red”, type=“l”, lwd=5,

ylim=c(-4,4), xlab=“Eje X”, ylab=“EjeY”, main=“Nuestra primera gráfica en R”)

> points(x, col=“blue”,cex=3, pch=21,bg=“green”, lwd=3)

> abline(lm(xseq(1,10)), lty=3, lwd=5,col=“orange”)

2 4 6 8 10

−4

−2

02

4

Nuestra primera gráfica en R

Eje X

Eje

Y

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 37/51

Potencia gráfica de R - Texto

Otra opción interesante es la de introducir

texto en nuestras figuras, para ello utilizare-mos el comando text que permite añadir

texto en cualquier zona del gráfico. Pode-mos escribir:

> plot(x, col = “red”, type = “l”, lwd = 5, ylim= c(-4,4), xlab = “Eje X”, ylab = “Eje Y”, main

= “Nuestra primera gráfica en R”)> points(x, col = “red”,cex = 3, pch = 21, bg

= “red”)> text(x, label = format(x, digits = 2, nsmall

= 2), cex = 1, font = 2)

2 4 6 8 10

−4

−2

02

4

Nuestra primera gráfica en R

Eje X

Eje

Y

−0.44

−2.37

−0.71

0.86

0.20

0.77 0.51 0.31

0.91

2.32

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 38/51

Potencia gráfica de R - Otros comandos

El comando plot no es el único que existe

para generar figurar, hay otros como:boxplot, barplot, cdplot, pie, . . . Podemos

escribir:> par(mfrow=c(2,2))

> boxplot(InsectSprays$count Insect-Sprays$spray, col = “red”)

> barplot(tapply(InsectSprays$count, IN-DEX = InsectSprays$spray, FUN = “mean”))

> pie(table(InsectSprays$spray),col = rainbow(6)) >

barplot(tapply(InsectSprays$count, INDEX= InsectSprays$spray, FUN = “mean”),

horiz = TRUE, col = “orange”)

A B C D E F

05

1015

2025

A B C D E F

05

1015

A

B

C

D

E

F

AB

CD

EF

0 5 10 15

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 39/51

Potencia gráfica de R - Y más

• Podemos modificar márgenes exteriores de figuras y entre figuras (ver?par, opciones: oma, omi, mar, mai, . . . ).

• También gráficos 3D: persp, image, contour ; histogramas: hist ; gráficosde barras: barplot ; gráficos de comparación de cuantiles, usados para

comparar la distribución de dos variables, o la disribución de unos datosfrente a un estándar: qqplot, qqnorm y, en paquete car, qq.plot.

• Notación matemática (plotmath) y expresiones de texto arbitrariamente

complejas.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 40/51

Programación en R

• Principales instrucciones

• if(cond) expr

• if(cond) cons.expr else alt.expr

• for(var in seq) expr

• while(cond) expr

• switch

• repeat expr

• break

• next

• La expresión expr (también alt.expr ) puede ser una expresión simple o

compuestas.

• Uno de los errores más habituales es el olvido de los corchetes . . .alrededor de las instrucciones, i.e. después de if(. . . ) o for(. . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 41/51

Programación en R - Comando if

IF significa SI (condicional). Su funcionamiento es simple, se evalúa una

condición, si es verdadera ejecuta un código, si es falsa, ejecuta otro código (ocontinúa con la ejecución del programa).

> f4 <- function(x) {

+ if (x > 5)

+ print("x > 5")

+ else {

+ y <- runif(1)

+ print(paste("y es ", y))

+ }

+ }

> f4(3)

[1] "y es 0.101673830067739"

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 42/51

Programación en R - Comando ifelse

ifelse es una versión vectorizada del comando if

> x <- c(4, 6, 7, 3, 1, 3)

> ifelse(x > 5, x/2, x * 2)

[1] 8.0 3.0 3.5 6.0 2.0 6.0

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 43/51

Programación en R - Comando for

Una de las estructuras de repetición empleada en la programación de

algoritmos para repetir un código (una o más sentencias de programación)dependiendo de un contador.

> for (i in 1:5) cat("el valor de i es", i, "\n")

el valor de i es 1

el valor de i es 2

el valor de i es 3

el valor de i es 4

el valor de i es 5

break sale de la instrucción

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 44/51

Programación en R - Comando while

Existen otras estructuras de repetición que no dependen de un contador y si

dependen de una condición.

> x <- 2

> while (x < 100) {

+ x <- x^2

+ print(x)

+ }

[1] 4

[1] 16

[1] 256

Cuando el valor de x ha sido mayor o igual que 100, sale del bucle.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 45/51

Programación en R - Comando switch

Podemos utilizar estructuras condicionales para ejecutar acciones. la función

switch nos permite utilizar estas opciones

> cadena <- "Owl Genomics - Curso de R, 2011"

> switch("my", my = toupper(cadena), mn = tolower(cadena), ig = cadena)

[1] "OWL GENOMICS - CURSO DE R, 2011"

> switch("mn", my = toupper(cadena), mn = tolower(cadena), ig = cadena)

[1] "owl genomics - curso de r, 2011"

Según el primer parámetro, se ejecuta una acción u otra.

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 46/51

Importar datos con R

Si vamos a trabajar con un conjunto de datos grande, es evidente, que no los

vamos a introducir “uno a uno”. R tiene varias funciones incorporadas parafacilitar esta tarea y pude importar datos desde una gran variedad de formatos

(*.csv, *.xls, *.xlsx, *.sav, *.txt, . . . ). Vamos a centrarnos en las principalesfunciones:

• read.table()

• read.csv(), read.csv2()

• read.xls(), read.xlsx()a

aCon la librerıa xlsx

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 47/51

Importar datos con R - read.table()

Con la función read.table() podemos importar directamente un data.frame. La

sintaxis completa de la función es:

read.table (fichero, header=TRUE,sep=“ ”, . . . )

Donde fichero es el nombre del fichero que queremos leer, header indica si

nuestro fichero tiene los nombres de las variables en el encabezado y sepindica la separación existente entre las variables (“ ” indica un espacio en

blanco, “\t” indica un tabulador, “;” indica punto y coma, . . . ).

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 48/51

Importar datos con R - read.csv()

Hablamos de read.csv() y read.csv2() para leer ficheros con extensión *.csva.

En muchos países europeos, el estándar es utilizar la “,” (coma) comoseparador de los decimales y el “;” (punto y coma) como separador de las

variables. Si nuestro fichero sigue este estándar, podemos utilizar la funciónread.csv2 que tiene estos argumentos por defecto.

aLos ficheros CSV (del ingles comma-separated values) son un tipo de documento en

formato abierto sencillo para representar datos en forma de tabla, en las que las columnas

se separan por comas

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 49/51

Importar datos con R - read.csv()

Precio;Area;Edad52.00;830;6.2

. . .

> datos <- read.csv2("datos.csv", header = TRUE)

> datos

Precio Area Edad

1 52.00 830 6.2

2 54.75 710 7.5

3 59.75 900 1.9

> datos$Edad

[1] 6.2 7.5 1.9

Levels: 1.9 6.2 7.5

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 50/51

Exportar datos con R

Complementarias a las funciones ya vistas existen las funciones:

• write.table()

• write.csv(), write.csv2()

• write.xls(), write.xlsx()a

aCon la librerıa xlsx

´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 51/51

Recommended