Introducción a la programación en R



Documentos relacionados
Centro de Capacitación en Informática

Introducción a la Estadística con Excel

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

Comentario sobre el entorno de desarrollo Microsoft Visual Studio 2005 Juan Manuel Lucas

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Report Builder

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

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

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.

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

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.

Presentaciones compartidas con Google Docs (tutorial)

Ejemplos de conversión de reales a enteros

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

Uso de Visual C++ Pre-Practica No. 3

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

Bases de datos en Excel

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

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

Curso PHP Módulo 1 R-Luis

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

Diplomado en. Servicio Nacional. De Facilitadores Judiciales

MATERIAL 2 EXCEL 2007

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

Introducción a Matlab.

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Internet Information Server

Instalación de R.

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Concesionario de coches

Este taller estará orientado a aquellas personas que no han visto jamás Python y también a aquellos que quieran pasar de Python 2 al 3

APLICACIONES MICROINFORMÁTICA Apuntes de POWERPOINT

Introducción a Moodle

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

Comisión Nacional de Bancos y Seguros

Procedimiento de instalación de Aula Virtual Santillana en Windows: Alumnos

Tema 7: Programación con Matlab

Guía N 1: Fundamentos básicos(i)

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

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

BASES DE DATOS - Microsoft ACCESS 2007-

Manual de NetBeans y XAMPP

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

CUADERNIA 2.0. CÓMO INSTALAR CUADERNIA 2.0 Para instalar Cuadernia debemos seguir los siguientes pasos:

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

NORMA 34.14(SEPA) 05/11/2013

De aquí sale el proyecto MACsyma (MAC s SYmbolic MAnipulator)

Módulo 1 El lenguaje Java

FICHERO DE AYUDA DEL PROGRAMA MEGAPRIMI

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

NOTAS TÉCNICAS SOBRE EL SIT: Comunicados (I)

Guía de acceso a Meff por Terminal Server

MANUAL DE FACTURACIÓN TOUCH SCREEN

Capítulo 9. Archivos de sintaxis

FICHERO DE AYUDA DEL PROGRAMA MEGAEURO

7zip es un programa de carácter libre y gratuito, que permite tanto comprimir como descomprimir archivos, con una alta capacidad de comprensión.

La ventana de Microsoft Excel

V Manual de Portafirmas V.2.3.1

Preliminares. Tipos de variables y Expresiones

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

CURSO DE INTRODUCCIÓN AL WORD

Práctica 1 - Pista de Carreras Programación II

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

Instalación de Fedora Core 18 junto a Windows 7.

MANUAL TRAMITACIÓN PROCEDIMIENTO

VJALQUILER VJALQUILER

Manual del Usuario Groupware

Curso de PHP con MySQL Gratis

15 CORREO WEB CORREO WEB

SISTEMAS DE NUMERACIÓN. Sistema decimal

Escuela Politécnica Superior de Elche

Manual para la instalación del cliente de correo electrónico Mozilla Thunderbird.

INSTALACIÓN PHP+MYSQL CON EASYPHP

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

Indicaciones específicas para los análisis estadísticos.

Ejercicio 1. Formato de Fuente y Párrafo.

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

Año: 2008 Página 1 de 18

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

PS.Vending Almacén Pocket PC

MANUAL DE LA APLICACIÓN DE ENVÍO DE SMS

MANUAL DE USUARIO. Se deben seguir los siguientes pasos para la correcta instalación del módulo descargable:

SIIGO Pyme. Procesos Gestión de Ventas. Cartilla I

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Manual hosting acens

Instructivo de Instalación y Uso de software MasterControl

MANUAL DE CS-ALMACENES (MAYO 2012)

para jóvenes programadores

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

Cuando crees tus propios documentos, puede ser que alguna

Modulo 1 El lenguaje Java


OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

UNIVERSIDAD DE PUERTO RICO

MACROS. Automatizar tareas a través del uso de las macros.

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

Tema 4: Empezando a trabajar con ficheros.m

Transcripción:

Programación en R 1 Introducción a la programación en R Qué es un programa de ordenador? Un programa de ordenador consiste en una secuencia de instrucciones que un ordenador pueda entender. El procesador de los ordenadores sólo es capaz de comprender un número limitado de instrucciones, y ello en un lenguaje incomprensible para la mayoría de personas. En la práctica, los programas se escriben en otros lenguajes más inteligibles para los humanos, como Pascal, Fortran, Java, o C, por citar algunos de los más conocidos. Luego, los programas escritos en estos lenguajes de alto nivel se traducen al lenguaje que entienden los procesadores. Está traducción la hacen otros programas que se denominan compiladores o intérpretes. Qué es R? R es un dialecto de S. S es un lenguaje que se desarrolló para el análisis de datos, cálculos estadísticos, simulación y gráficos. Además, y eso es lo que nos interesa más aquí, es un lenguaje de programación de tipo general. S-Plus es la versión comercial de S. R es la versión en código abierto y gratuita de S. Componentes básicos de un programa Los programas de ordenador pueden llegar a ser muy complejos, pero, en realidad todos ellos constan de muy pocos componentes. El aprendizaje de los componentes básicos no es difícil. Esto es especialmente cierto en R, que es un lenguaje de programación con pocos requerimientos, por lo que se pueden escribir programas sencillos en poco tiempo. Cuando se ejecuta un programa es necesario acceder a la memoria interna del procesador. La mayoría de lenguajes no permiten el acceso directo a dicha memoria, sino que el acceso se hace mediante unas entidades denominadas variables. Estas variables pueden contener números, caracteres u otras estructuras más complejas. A lo largo del programa el contenido de una variable puede cambiar de valor. Los programas se estructuran en sentencias, las cuales se van ejecutando unas detrás de otras. Las sentencias pueden ser simples o complejas. Las sentencias complejas constan de varias sentencias simples. Para que un programa pueda hacer cosas interesantes es necesario que se le permita bifurcarse. Normalmente esto se hace mediante la evaluación de una condición lógica. Si ésta es cierta el programa hace una cosa y si es falsa hace otra cosa distinta. Los ordenadores son ecelentes haciendo tareas repetitivas. Estas tareas que hay que realizar muchas veces se ponen dentro de unas estructuras conocidas como bucles. A veces nos encontramos dentro de un programa con partes muy parecidas, solo que unas veces se aplican a unas variables y otras veces a otras. Los lenguajes de programación suelen permitir unas estructuras (funciones en R) que pueden ser ejecutadas de forma ligeramente distinta dependiendo de unos parámetros o argumentos que se pasan en el momento de la ejecución.

Programación en R 2 Variables Las más elementales que nos encontraremos contendrán números (enteros o reales) o tiras de caracteres. Los nombres de las variables empiezan por una letra que puede ir seguida de más letras, dígitos o los símbolos punto (.) y subrayado (_). Las letras mayúsculas y minúsculas son tratadas como caracteres distintos. Para dar un valor a una variable se usa el símbolo de asignación <-. En R, a diferencia de otros lenguajes, no es necesario declarar a priori el nombre y el tipo de las variables. Para crear una variable denominada r que valga 2.5 basta con escribir: r <- 2.5 El signo de asignación <- se tiene que interpretar como una flecha que apunta a la izquierda y que dice que ponemos el valor 2.5 en la variable r. Para saber el contenido de una variable basta con teclear su nombre r [1] 2.5 Si queremos que una variable contenga una tira de caracteres introduciremos dichos caracteres entre comillas ( ) apellido <- Ferrer Un tipo especial de variables contiene los valores lógicos cierto (TRUE) y falso (FALSE) condicion <- TRUE Muy a menudo conviene guardar varias variables del mismo tipo bajo el mismo nombre. Para ello usamos vectores y para asignarles valores se usa la función c primos <- c(1, 2, 3, 5, 7, 11, 13, 17, 19) Se puede acceder al vector entero por su nombre primos [1] 1 2 3 5 7 11 13 17 19 O a uno de sus elementos proporcionando la posición del mismo (el quinto elemento del vector primos es el número 7) primos[5] [1] 7 Operaciones aritméticas Suma + Diferencia - Producto *

Programación en R 3 División / División entera %/% Módulo (resto) %% Potencia ^ Ejemplos: a <- 4 b <- 3 suma <- a + b diferencia <- a - b producto <- a * b division <- a / b potencia <- a^b division_entera <- a %/% b modulo <- a%%b suma [1] 7 diferencia [1] 1 producto [1] 12 division [1] 1.333333 potencia [1] 64 division_entera [1] 1 modulo [1] 1 A diferencia de otros lenguajes de programación, R puede efectuar operaciones directamente con vectores. Es fácil, por ejemplo, obtener el cuadrado de cada uno de los elementos contenidos en el vector primos primos^2 [1] 1 4 9 25 49 121 169 289 361 Bifurcaciones A veces nos interesa ejecutar alguna parte del programa dependiendo de alguna condición. Para ello R dispone de la instrucción if: alpha <- 2 if (alpha > 1) <- 99 [1] 99 Si la sentencia que se desea ejecutar cuando se cumple la condición es compleja, es decir, está compuesta de varias sentencias simples, entonces estas deben agruparse dentro de los símbolos { y }. Las sentencias simples se separan unas de otras mediante el símbolo ; o mediante el salto de línea.

Programación en R 4 alpha <- 2 if (alpha > 1){ <- 99 y <- 999} [1] 99 y [1] 999 A menudo nos interesa indicar también lo que se debe hacer si no se cumple la condición. Para ello tenemos una variación de la sentencia if que es if else alpha <- 0 if (alpha > 1) <- 99 else <- -99 [1] -99 La sentencia que sigue a else puede ser a su vez una sentencia if, de forma que se pueden encadenar una serie de secuencias if else if else alpha <- 1 if (alpha > 1) <- 99 else if (alpha < 1) <- -99 else <- 0 [1] 0 Bucles Hay dos tipos de bucles dependiendo de si conocemos de antemano el número de veces que hay que repetirlo (iteraciones). Si sabemos a priori el número de iteraciones la instrucción en R es for; por el contrario, si el número de iteraciones depende de los cálculos que se efectúen en el propio bucle la instrucción adecuada en R es while. Por ejemplo, si deseamos calcular e imprimir los cuadrados de los 10 primeros números naturales bastan con for (i in 1:10) print(i^2) [1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36 [1] 49 [1] 64 [1] 81 [1] 100 La variable i del bucle anterior se denomina variable de control del bucle. En el paréntesis que sigue a for indicamos el nombre de la variables de control y como debe variar mediante la instrucción in (entre 1 y 10 en este ejemplo). Aunque puede hacerse, es desaconsejable alterar dicho valor dentro del mismo bucle for.

Programación en R 5 Por supuesto, la sentencia que sigue a for puede ser compleja. Por ejemplo, si deseamos generar cinco números aleatorios de distribución uniforme entre 0 y 1 (función runif) e imprimirlos basta con for (i in 1:5){ <- runif(1) print() } [1] 0.5627295 [1] 0.8562093 [1] 0.3574094 [1] 0.9727754 [1] 0.6712237 Supongamos ahora que queremos escribir todos los números naturales cuyo cubo sea inferior a 100. Un bucle while nos permite hacerlo fácilmente: i <- 1 i3 <- i^3 while (i3 < 100){ cat(i, i3, "\n") i <- i + 1 i3 <- i^3 } La palabra clave while va seguida de una condición. Si la condición es cierta se ejecuta la sentencia (compleja en este caso) que sigue. Después de ejecutar la sentencia se evalúa de nueva la misma condición (ahora con un valor distinto de i3) y si es cierta se ejecuta de nuevo. Cuando deja de cumplirse la condición el programa prosigue con la siguiente sentencia. Dentro del bucle se escribe el número natural que cumple la condición de que su cubo es menor que 100, se incrementa a cada paso la variable de control y se calcula el nuevo cubo. En este caso usamos la función cat para imprimir el resultado en lugar de la función print; cat permite concatenar el output ("\n" indica salto de línea). Funciones Una de las grandes ventajas de trabajar con R es que dispone de una gran cantidad de funciones escritas por miles de programadores en todo el mundo y puestas a nuestra disposición en Internet. Pero no siempre eistirá la función que nosotros queramos, por lo que también es conveniente que sepamos crear nuestras propias funciones. Una función se define de la siguiente forma nombre <- function (lista_de_parametros) cuerpo_de_la_funcion donde nombre es el nombre de la función, function es una palabra reservada que indica que lo que sigue es una función, lista_de_parametros es una lista separada por comas que contiene los parámetros que se pueden pasar a la función y cuerpo_de_la_funcion es una serie de sentencias válidas en R, normalmente incluidas dentro de los símbolos { y }.

Programación en R 6 Una vez definida la función se puede invocar desde nuestro programa de la forma siguiente <- nombre (par1, par2, par3) En la variable obtendremos el resultado de aplicar la función nombre a los parámetros indicados (par1, par2, par3, en este ejemplo). Entenderemos mejor su funcionamiento con un ejemplo. R dispone de la función log para calcular el logaritmo natural de un número. También dispone de las funciones log2 y log10 para calcular los logaritmos en base 2 y base 10, respectivamente. Estas funciones se pueden invocar directamente puesto que ya vienen en la implementación por defecto de R: <- log10(1000) [1] 3 Supongamos que nosotros tuviéramos que efectuar en nuestro programa repetidas veces el cálculo del logaritmos en base 5 de un número. Para facilitar nuestra tarea lo mejor sería crear una función log5 que efectuara el cálculo. Veamos como: # devuelve el logaritmo en base 5 de un número log5 <- function(){ y <- log() / log(5) return(y) } La instrucción return le dice a la función el valor que debe devolver. No es necesario que toda función contenga la instrucción return; hay muchas funciones que efectúan distintas tareas sin necesidad de devolver un resultado. La invocación de log5 nos proporciona el resultado deseado log5(25) [1] 2 Más general todavía sería la siguiente función que calcula logaritmos en cualquier base #Devuelve el logaritmo de un número en la base indicada logbase <- function(, base){ y <- log() / log(base) return(y) }

Programación en R 7 Ejercicios 1. Escribir un programa que intercambie los valores de dos variables denominadas e y. 2. Escribir un programa que escriba Hola si el valor de la variable es menor que 0.5 y que escriba Adiós si es mayor que 0.5. 3. Escribir un programa que genere 1000 números aleatorios (con distribución uniforme entre 0 y 1), que cuente los que son mayores y los que son menores o iguales que 0.5 y que escriba la respuesta. [Podemos generar los 100 números aleatorios en una sola instrucción de la siguiente forma: <- runif(1000)] 4. Escribir un programa que genere los primeros cien términos de la serie de Fibonacci. 5. Calcular el cociente entre términos consecutivos de la serie de Fibonacci y representar dichos valores. [La función plot() dibuja los valores del vector ] 6. Escribir un programa que genere números aleatorios (con distribución uniforme entre 0 y 1) hasta que encuentre uno que sea mayor que 0.9999 y que diga cuantos intentos ha necesitado. 7. Escribir una función que devuelva el valor medio de dos números. 8. Generar un vector de n números aleatorios con distribución normal y mostrar el valor mayor de todos. [rnorm(n, mean=0, sd=1) genera n números aleatorios con distribución normal de media 0 y desviación típica 1] 9. Hacer un programa que simule el crecimiento eponencial de una población con tasa finita de crecimiento λ y población inicial N 0. Hacer un gráfico con el tamaño poblacional hasta un tiempo t = 100. 10. **Generar un vector de n números aleatorios y mostrarlo ordenado de mayor a menor. Obtención, instalación y ejecución de R R se ha desarrollado para las plataformas Uni, Windows y MAcOS. El copyright de R pertenece a The R Foundation for Statistical Computing, aunque se trata de software libre, por lo que su utilización es libre y gratuita. Los archivos de R se encuentran en el Comprehensive R Archive Network, o CRAN, en http://cran.r-project.org. En esta dirección se pueden descargar los archivos y la documentación necesaria para instalar R en nuestro ordenador. El archivo principal que se necesita es el de instalación ( setup file ); en el momento de redactar este documento, el nombre del archivo de instalación era R-2.5.1-win32.ee, lo que indica que se trata de la versión 2.5.1 de R. Este archivo es autoejecutable y instalará R automáticamente en nuestro ordenador una vez finalizada la descarga (de unas 29 MBytes). Para ejecutar R basta con clicar sobre el icono de R. Una vez iniciado el programa se puede obtener abundante información adicional sobre R mediante la ayuda del propio programa. En particular, es conveniente acudir a los manuales en pdf que contiene.

Programación en R 8 Con la operación anterior se habrá instalado la versión básica de R. Sin embargo, eisten numerosas librerías de funciones de R que pueden sernos de utilidad en algún momento y que hay que instalar manualmente. Algunas de estas funciones se han descargado a nuestro ordenador con la instalación efectuada pero no se cargan automáticamente al ejecutar R. Podemos cargar estas librerías con la instrucción Load package de la pestaña Packages del programa. Alternativamente, podemos utilizar la instrucción library library(lattice) En este ejemplo se ha cargado la librería lattice, con la que es posible realizar un gran número de representaciones gráficas. Teclear help(lattice) en R para obtener más información. Hay otras librerías que no se han descargado a nuestro ordenador con la configuración básica. Si deseamos utilizar alguna de ellas se deben descargar manualmente (normalmente en formato zip) e instalar con la instrucción Install packages from local zip files de la pestaña Packages del programa. Una vez realizada esta operación hay que cargar la libraría deseada con la instrucción library. Instalación y ejecución de Tinn-R Tinn-R es un editor para escribir programas en R. No es imprescindible, ya que los programas se pueden escribir como scripts en el editor que proporciona el propio compilador de R (Rgui). Sin embargo, Tinn-R facilita notablemente esta tarea. Tinn-R es, al igual que R, un software de utilización libre y gratuita. Se puede descargar en https://sourceforge.net/projects/tinn-r. En el momento de redactar este documento el fichero de instalación (setup) era Tinn-R_2.3.2.3_setup.ee, el cual instalaba la versión 1.19.2.3 de Tinn-R. Una vez instalado, podemos ejecutar Tinn-R clicando sobre el icono correspondiente. El programa tiene un conjunto de menús más o menos estándar que permite abrir o crear nuevos ficheros de código (menú File ), o trabajar con conjuntos de ficheros relacionados (menú Project ). Una de las ventajas de Tinn-R sobre el editor de Rgui es que Tinn-R resalta la sintais utilizando colores distintos para indicar diferentes tipos de código, lo cual facilita mucho la detección de errores. Por ejemplo, los fragmentos comentados (#) se muestran en color verde y en cursiva; las palabras reservadas (funciones y parámetros de R, por ejemplo) se muestran en rojo, azul y fucsia, dependiendo de su tipo; mientras que los valores numéricos y las variables creadas por el usuario se muestran en negro. Tinn-R ofrece también opciones avanzadas de búsqueda, formato y visualización. Una vez escrito el programa de R utilizando Tinn-R, lo primero que hemos de hacer para ejecutarlo es abrir la consola de R (opción R: Start preferred Rgui). Una vez hecho esto podemos ejecutar todo el código de una vez (R: Send to R: All) o por fragmentos (R: Send to R: Selection), lo cual facilita mucho tanto la detección de errores como la construcción del código de una manera modular. Tinn-R permite también interactuar con la consola de R para controlar la ejecución de los programas mediante la opción R: Controlling R. Se puede obtener abundante información adicional consultando la ayuda que ofrece el propio programa.