Curso básico de R
Francesc Carmona
[email protected]
15 de febrero de 2007
El objetivo principal de este curso es proporcionar los elementos básicos para
empezar a trabajar con el lenguaje de programación R en el ámbito de la
Estadística.
1
Índice
1.
Introducción
7
1.1. R y S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.2. Obtención y instalación de R . . . . . . . . . . . . . . . . 10
1.3. Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4. Documentación . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5. Ayudas sobre R . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Empezamos
17
Inicio de una sesión en R . . . . . . . . . . . . . . . . . . 17
2.1.
2.2. Una primera sesión . . . . . . . . . . . . . . . . . . . . . . 18
2.3. R como calculadora . . . . . . . . . . . . . . . . . . . . . . 19
2.4. Ayuda dentro del programa . . . . . . . . . . . . . . . . . 20
2.5.
Instalación de paquetes adicionales . . . . . . . . . . . . . 21
2.6. Usar R desde un editor . . . . . . . . . . . . . . . . . . . . 22
2.7. Un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3. Objetos en R
24
2
3.1. ¿Qué objetos? . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2. Tipos de objetos . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Atributos de los objetos . . . . . . . . . . . . . . . . . . . 28
3.4. Nombres para los objetos
. . . . . . . . . . . . . . . . . . 30
3.5. Operaciones aritméticas . . . . . . . . . . . . . . . . . . . 31
3.6. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . 33
3.7. Discretizar datos
. . . . . . . . . . . . . . . . . . . . . . . 35
. . . . . . . . . . . . . . . . . 36
3.8. Operaciones con conjuntos
4. Vectores
37
. . . . . . . . . . . . . . . . . . 37
4.1. Generación de secuencias
4.2. Generación de secuencias aleatorias
. . . . . . . . . . . . 39
4.3. Selección de elementos de un vector . . . . . . . . . . . . 40
4.4. Valores perdidos . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5. Ordenación de vectores
. . . . . . . . . . . . . . . . . . . 43
4.6. Vectores de caracteres . . . . . . . . . . . . . . . . . . . . 44
4.7. Factores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5. Arrays y matrices
47
3
5.1. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2. Operaciones con matrices . . . . . . . . . . . . . . . . . . 51
5.3. Combinación de arrays . . . . . . . . . . . . . . . . . . . . 54
6. Data.frames
55
6.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2. La familia apply . . . . . . . . . . . . . . . . . . . . . . . . 58
6.3. Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.4. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7. Muchos objetos
63
7.1. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2. Los objetos que tenemos . . . . . . . . . . . . . . . . . . . 64
7.3. En resumen . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8. Datos
70
8.1. Lectura de datos . . . . . . . . . . . . . . . . . . . . . . . 70
8.2. Guardar y leer datos . . . . . . . . . . . . . . . . . . . . . 71
. . . . . . . . . . . . . . . . . . . 72
8.3.
Importar datos de Excel
4
8.4. Exportar datos
. . . . . . . . . . . . . . . . . . . . . . . . 74
9. Gráficos
Identificación interactiva de datos
75
9.1.
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.2. El comando plot . . . . . . . . . . . . . . . . . . . . . . . 76
9.3.
. . . . . . . . . . . . . 80
9.4. Múltiples gráficos por ventana . . . . . . . . . . . . . . . . 81
9.5. Datos multivariantes . . . . . . . . . . . . . . . . . . . . . 82
9.6. Boxplots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.7. Un poco de ruido . . . . . . . . . . . . . . . . . . . . . . . 84
9.8. Dibujar rectas . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.9. Más gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.10. Guardar los gráficos
. . . . . . . . . . . . . . . . . . . . . 87
10. Funciones
88
10.1. Definición de funciones . . . . . . . . . . . . . . . . . . . . 88
10.2. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.4. Control de ejecución . . . . . . . . . . . . . . . . . . . . . 92
5
10.5. Cuando algo va mal
. . . . . . . . . . . . . . . . . . . . . 95
10.6. Ejecución no interactiva . . . . . . . . . . . . . . . . . . . 97
Este curso está basado muy especialmente en el documento
Introducción al uso y programación del sistema estadístico R
de Ramón Díaz-Uriarte de la Unidad de Bioinformática del CNIO.
6
1.
Introducción
1.1. R y S
R, también conocido como ”GNU S”, es un entorno y un lenguaje para
el cálculo estadístico y la generación de gráficos. R implementa un
dialecto del premiado lenguaje S, desarrollado en los Laboratorios Bell
por John Chambers et al.
Para los no iniciados diremos que R provee un acceso relativamente
sencillo a una amplia variedad de técnicas estadísticas y gráficas.
Para los usuarios avanzados se ofrece un lenguaje de programación
completo con el que añadir nuevas técnicas mediante la definición de
funciones.
“S ha modificado para siempre la forma en la que las personas
analizan, visualizan y manipulan los datos” (Association of Computer
Machinery Software System Award 1998 a John Chambers).
7
Actualmente, S y R son los dos lenguajes más utilizados en
investigación en estadística.
Los grandes atractivos de R/S son:
La capacidad de combinar, sin fisuras, análisis
”preempaquetados”(ej., una regresión logística) con aná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 papers.
La comunidad de R es muy dinámica, con gran crecimiento del
número de paquetes, e integrada por estadísticos de gran
renombre (ej., J. Chambers, L. Terney, B. Ripley, D. Bates, etc.).
Hay extensiones específicas a nuevas áreas como bioinformática,
geoestadística y modelos gráficos.
Es un lenguaje orientado a objetos.
Se parece a Matlab y a Octave, y su sintaxis recuerda a C/C++.
8
R es la implementación GNU de S.
Filosofía y objetivos del proyecto GNU: http://www.gnu.org
R se distribuye con licencia GNU GPL o General Public
http://www.gnu.org/licenses/gpl.html
La GPL no pone ninguna restricción al uso de R. Restringe su
distribución (ha de ser GPL).
R se obtiene por 0 euros en http://cran.es.r-project.org
S-PLUS es un programa comercial.
9
1.2. Obtención y instalación de R
Depende del sistema operativo, pero todo se puede encontrar en
http://cran.es.r-project.org/bin
Windows: se puede obtener un ejecutable desde
http://cran.es.r-project.org/bin/windows/base por ejemplo,
http://cran.es.r-project.org/bin/windows/base/R-2.4.1-win32.exe
Al ejecutar el archivo se instalará el sistema base y los paquetes
recomendados.
GNU/Linux: (dos opciones)
1. Obtener el R-x.y.z.tar.gz y compilar desde las fuentes.
También bajar los paquetes adicionales y instalarlos. (Buena
forma de comprobar que el sistema tiene development tools).
2. Obtener binarios (ej., *.deb para Debian, *.rpm para RedHat,
SuSE, Mandrake).
10
1.3. Paquetes
R consta de un sistema base y de paquetes adicionales que extienden
su funcionalidad.
http://cran.es.r-project.org/src/contrib/PACKAGES.html
Tipos de paquetes:
Los que forman parte del sistema base (ej. ctest).
Los que no son parte del sistema base, pero son recommended
(ej., survival, nlme).
En GNU/Linux y Windows ya forman parte de la distribución
estándar.
Otros paquetes; ej., UsingR, foreing, los paquetes de
Bioconductor (como multtest, etc.).
Éstos se han de seleccionar y instalar individualmente. Más
adelante veremos cómo.
11
1.4. Documentación
Los manuales de R, incluidos en todas las instalaciones son:
An introduction to R. (De lectura obligatoria)
Writing R extensions.
R data import/export.
The R language definition.
R installation and administration.
12
Documentación general:
R para principiantes, de E. Paradis. En
http://cran.es.r-project.org/doc/contrib/Paradis-rdebuts_en.pdf
o http://cran.es.r-project.org/doc/contrib/rdebuts_es.pdf.
A guide for the unwilling S user, de P. Burns. En
http://cran.es.r-project.org/doc/contrib/Burns-unwilling_S.pdf o
http://www.burns-stat.com/pages/tutorials.html. ¡Sólo 8 páginas!
R Graphics, de Paul Murrell.
S Programming, de W. Venables y B. Ripley.
Ver también http://www.stats.ox.ac.uk/pub/MASS3/Sprog.
13
Estadística:
simpleR Using R for Introductory Statistics de John Verzani en
http://www.math.csi.cuny.edu/Statistics/R/simpleR/index.html
Introductory statistics with R de P. Dalgaard.
An R and S-PLUS companion to applied regression de J. Fox.
Modern applied statistics with S, 4th ed. de W. Venables y B.
Ripley.
Ver también http://www.stats.ox.ac.uk/pub/MASS4.
Practical regression and ANOVA using R de J. Faraway, en
http://cran.r-project.org/other-docs.html o
http://www.stat.lsa.umich.edu/~faraway/book/.
Estadística Aplicada con S-PLUS de M. Dolores Ugarte y Ana F.
Militino.
Otros documentos en
http://cran.es.r-project.org/other-docs.html
14
S-PLUS 6.0 for Unix. Guide to statistics. Vol. I & II. En
http://www.insightful.com/support/documentation.asp?DID=3
Mixed-effects models in S and S-PLUS de J. Pinheiro y D. Bates.
Regression modelling strategies de F. Harrell.
Modelos Lineales de F. Carmona.
”Site¸con documentación sobre análisis para datos categóricos
(”site”para el libro de A. Agresti Categorical data analysis).
http://www.stat.ufl.edu/~aa/cda/cda.html
Modeling survival data: extending the Cox model de T. M.
Therenau y P. M. Grambsch.
Documentos varios en la página de J. Fox
http://cran.r-project.org/doc/contrib/Fox-Companion/appendix.html
Comentarios de: Curso básico de R (0)
No hay comentarios