Curso de Iniciación a R



Documentos relacionados
Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Introducción a Matlab.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

El programa Minitab: breve introducción a su funcionamiento. Para mostrar la facilidad con la que se pueden realizar los gráficos y cálculos

Introducción a la Estadística con Excel

Tema 7: Programación con Matlab

Práctica 3: Funciones

Introducción a la programación en R

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Preliminares. Tipos de variables y Expresiones

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Instructivo de Microsoft Excel 2003

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Acronis License Server. Guía del usuario

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Instalación de R.

Introducción a la Programación en MATLAB

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Métodos Estadísticos de la Ingeniería Práctica 1: Introducción a R

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

SIIGO Pyme. Templates. Cartilla I

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Descripción del programa GeneSis

Introducción a la plataforma Moodle Aníbal de la Torre Plataforma Moodle. Accediendo a los contenidos

MATERIAL 2 EXCEL 2007

Introducción a la extensión de scripting en gvsig 2.0

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Capítulo 1 Documentos HTML5

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL


6. Uso de sistemas operativos 7. Uso de un entorno integrado de desarrollo de programas

Grupo: Documentación Tipo documento: Manual de Usuario V.1.0 /2011 René Darío Pacios Díaz

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

El Programa estadístico R

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

Tutorial: Primeros Pasos con Subversion

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Guía de inicio rápido a

Pág. 7 de 11. SPSS Inc. desarrolla un módulo básico del paquete estadístico SPSS, del que han aparecido las siguientes versiones:

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Modulo 1 El lenguaje Java

Tutorial Básico de vbscript

Introducción al lenguaje JAVA

Comenzando con MATLAB

Curso PHP Módulo 1 R-Luis

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

TEMA 7 ANÁLISIS DE DATOS: INTRODUCCIÓN AL SPSS

Capítulo 9. Archivos de sintaxis

Elementos léxicos del lenguaje de programación Java

CAPITULO 5 CASO DE ESTUDIO: ONTOLOGÍA PARA EL ANÁLISIS DE GRUPOS DE INVESTIGACIÓN (OAGI)

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Tutorial Ambiente de Trabajo en InfoStat

1. Visualización de datos con Octave

Curso de Excel Objetivos de la Guía. La sintaxis de una fórmula

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

FUNDAMENTOS DE PROGRAMACION CON C#

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Tema 4: Empezando a trabajar con ficheros.m

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

MATLAB en 30 minutos

Ejemplos básicos de webmathematica para profesores

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Internet Information Server

Funciones y subrutinas

arquitectura que maneja. Encontraremos también los diferentes servidores que

Administración de portales Joomla (II)

Funciones. Funciones Diapositiva 1

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Tutorial rápido de. acceso a la plataforma virtual

Manual CMS Mobincube

Introducción a Matlab

Formularios. Formularios Diapositiva 1

Practica 01: Programación en C bajo Linux y funciones

Manual de NetBeans y XAMPP

Introducción a Protégé

Lectura de datos. Marcelo Reyes Notas sobre gretl 1.8.6cvs

Sistema Inteligente de Exploración

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Introducción a PHP. * No es necesario declarar previamente las variables.

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

GENERACIÓN DE TRANSFERENCIAS

Eurowin 8.0 SQL. Manual del módulo TALLAS Y COLORES

Centro de Capacitación en Informática

Introducción a MATLAB/ OCTAVE. Fundamentos Físicos de la Informática, 2006

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

MF0952_2: Publicación de páginas web

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Instrucciones de instalación de IBM SPSS Modeler Server 16 para Windows

Transcripción:

Curso de Iniciación a R Ibon 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 y otros 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 la investigación biomédica, la bioinformática y las matemáticas financieras. R se distribuye bajo la licencia GNU GPL y está disponible para los sistemas operativos 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 versiones del programa R y los paquetes anexos. El Mirror a en España es http://cran.es.r-project.org/. a es un sitio Web que contiene una réplica exacta de otro. Estas réplicas u espejos se suelen crear para facilitar grandes descargas y facilitar el acceso a la información 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 con aná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 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 artículos. µ ¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 p. 5/51

Proyecto R - Propiedades La capacidad de combinar, sin fisuras, análisis preempaquetados 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 artículos. 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,... ). µ ¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 p. 5/51

Proyecto R - Propiedades La capacidad de combinar, sin fisuras, análisis preempaquetados 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 artículos. 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,... ). 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 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 artículos. 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,... ). 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 su funcionalidad. 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 su funcionalidad. 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 su funcionalidad. 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 e instalar 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 R a. a Documento 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 R a. Writing R extensions. a Documento 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 R a. Writing R extensions. R data import/export. a Documento 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 R a. Writing R extensions. R data import/export. The R language definition. a Documento 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 R a. Writing R extensions. R data import/export. The R language definition. R installation and administration. a Documento 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 Unix o 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 Unix o 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 proyectos abiertos 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 proyectos abiertos 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 en tcltk. µ ¹ ½ 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 proyectos abiertos 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 en tcltk. 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 proyectos abiertos 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 en tcltk. 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 proyectos abiertos 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 en tcltk. 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 es una 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 es una 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 es una 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 es una 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 X 1,X 2,...,X n una muestra aleatoria simple. Se sabe que la distribución de Z = n min{x 1,X 2,...,X n } 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 utilizaremos ls(). µ ¹ ½ 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 utilizaremos ls(). 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 utilizaremos ls(). 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 utilizaremos ls(). 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 que especifiquemos. µ ¹ ½ 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. Muy flexibles, 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 cadena que 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(función). Además, podemos ver algunos ejemplos con el comando example(función). µ ¹ ½ 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 de Paul 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 de Paul 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 de Paul 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 de Paul 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 (x i, y i ). µ ¹ ½ 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 vector 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áficamente sólo tenemos que escribir: > x<-rnorm(10) x 2 1 0 1 2 2 4 6 8 10 Index > plot(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 entiende como argumentos los nombres de los colores: red, green, blue,.... Podemos ver los colores predefinidos con la función colours(). Si escribimos: > plot(x, col= red, type= l, lwd=5) x 2 1 0 1 2 2 4 6 8 10 Index µ ¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 p. 35/51

Potencia gráfica de R Podemos modificar los atributos de los Nuestra primera gráfica en R límites del gráfico (xlim,ylim), las etiquetas de 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= Eje Y, main= Nuestra primera gráfica en R ) Eje Y 4 2 0 2 4 2 4 6 8 10 Eje X µ ¹ ½ 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 Nuestra primera gráfica en R 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= Eje Y, main= Nuestra primera gráfica en R ) > points(x, col= blue,cex=3, pch=21, Eje Y 4 2 0 2 4 2 4 6 8 10 Eje X bg= green, lwd=3) > abline(lm(x seq(1,10)), lty=3, lwd=5, col= orange ) µ ¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 p. 37/51

Potencia gráfica de R - Texto Otra opción interesante es la de introducir Nuestra primera gráfica en R texto en nuestras figuras, para ello utilizaremos el comando text que permite añadir texto en cualquier zona del gráfico. Podemos 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 ) Eje Y 4 2 0 2 4 0.31 2.32 0.86 0.77 0.51 0.91 0.20 0.44 0.71 2.37 2 4 6 8 10 Eje X > points(x, col = red,cex = 3, pch = 21, bg = red ) > text(x, label = format(x, digits = 2, nsmall = 2), cex = 1, font = 2) µ ¹ ½ 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: 0 5 10 15 20 25 A B C D E F 0 5 10 15 A B C D E F > par(mfrow=c(2,2)) > boxplot(insectsprays$count Insect- Sprays$spray, col = red ) > barplot(tapply(insectsprays$count, IN- C D B E A F A B C D E F 0 5 10 15 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 ) µ ¹ ½ 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áficos de barras: barplot; gráficos de comparación de cuantiles, usados para comparar la distribución de dos variables, o la disribución de unos datos frente 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 (o continú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 para facilitar esta tarea y pude importar datos desde una gran variedad de formatos (*.csv, *.xls, *.xlsx, *.sav, *.txt,... ). Vamos a centrarnos en las principales funciones: read.table() read.csv(), read.csv2() read.xls(), read.xlsx() a a Con 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 sep indica 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 *.csv a. En muchos países europeos, el estándar es utilizar la, (coma) como separador de los decimales y el ; (punto y coma) como separador de las variables. Si nuestro fichero sigue este estándar, podemos utilizar la función read.csv2 que tiene estos argumentos por defecto. a Los ficheros CSV (del inglés 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;Edad 52.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 a Con la librería xlsx µ ¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 p. 51/51