introducción a la programación en r

75

Upload: rosa-padilla

Post on 03-Jul-2015

2.474 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Introducción a la Programación en R
Page 2: Introducción a la Programación en R

Introducción e instalación• R es un sistema de análisis estadístico

creado en 1996 por Ross Ihka y Robert Gentleman .

• Es una implementación del lenguaje S desarrollado en los laboratorios Bell por Rick Becker, John Chambers y Adam Wilks.

• Además, el lenguaje S forma la base del sistema S-PLUS

• S, simple y clara.

Page 3: Introducción a la Programación en R

Introducción e instalación• R puede utilizarse como un lenguaje de

programación y como una pieza.

• Puede ser utilizado en la manipulación de datos, cálculos y proyección de gráficas.

• También puede ser usado como un interpretador de lenguaje de programación y es una introducción excelente a la programación ya que su sintaxis es simple y clara.

Page 4: Introducción a la Programación en R

Instalación de R

• La descarga de R es gratuita en CRAN (Comprehensive R Archive Network)

Page 5: Introducción a la Programación en R

Instalación de R en Windows• Para la plataforma de Windows accede

Windows (95 o versiones posteriores), escoge la versión y descarga el archivo R-XXXX-win32.exe, donde XXXX representa el número ejecutable (por ejemplo, R-2.4.0-win32.exe para liberar 2.4.0) escoge un área cerca de ti (eg. UK, Bristol).

• Utiliza este archivo para instalar R en tu computadora.

Page 6: Introducción a la Programación en R

GNU Linux/Unix

• En las cajas *nix se necesita tener una raíz de acceso.

• Usualmente hay disponible un .rpm ó un paquete de un instalador similar.

• Si usted es bueno poniendo a funcionar paquetes lo puedes instalar desde su fuente donde debes descargar los archivos de base de .src y compilar tu propia versión.

Page 7: Introducción a la Programación en R

Macintosh

• R esta disponible para los sistemas OSX.

• Por el momento el autor no conoce comose puede instalar.

• La información se puede conseguir en CRAN.

Page 8: Introducción a la Programación en R

Document conventions

• Este es el color de entrada. • Lo que significa que todo lo que ves de este

color puede entrarse en la línea de comando de R.

• Todo en este color es repuesta de R y aparecerá en la ventana de R.

• Todo en este color es una pieza larga del código R en el cual se puede escribir en una línea por línea de base, pero probablemente es mejor si se lee desde su archivo.

• Finalmente, todo en este color es data.

Page 9: Introducción a la Programación en R

• Todos los objetos de R son de este color.

• Los objetos en este color no necesariamente pueden ser escritos como una consola de comandos.

• Toda función debe ir acompañada de paréntesis para identificar que es una función.

• La función linear de regresión lm se representa como lm().

Page 10: Introducción a la Programación en R

Comenzar con R• En las maquinas *nix R se invoca escribiendo:

>R• R responderá con el siguiente mensaje de

introducción:

R : Copyright 2006, The R Foundation for Statistical Computing Version 2.3.1(2006-06-01) ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type ’license()’ or ’licence()’ for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors. Type ’contributors()’ for more information and ’citation()’ on how to cite R or R packages in publications.

Type ’demo()’ for some demos, ’help()’ for on-line help, or ’help.start()’ for an HTML browser interface to help. Type ’q()’ to quit R.

Page 11: Introducción a la Programación en R

• Las máquinas que contienen Windows son ligeramente diferentes en R ya que comenzará en una ventana que llevará a otra, la cual actuará como terminal:

Page 12: Introducción a la Programación en R

El menú y la barra de herramientas en la versión R de Windows hace algunas funciones de R inmediatamente accesibles sin cambiar la función esencial del programa

Page 13: Introducción a la Programación en R

Menú de R

Page 14: Introducción a la Programación en R

Barra de herramientas

Open script

Load workspace

Save Workspace Paste

Copy Copy and paste

Print

Stop current computation

Page 15: Introducción a la Programación en R

El teclado “up”

• El teclado “up” en R trabaja de la misma forma que la mayoría de las bases de comandos de un teclado “up”.

• Cuando desarrollas una línea del código R puedes correr la línea una y otra vez y puedes modificar si es necesario sin tener que reescribir la línea otra vez.

Page 16: Introducción a la Programación en R

El Teclado “tab”

• El teclado “tab” para R en la mayoría de los sistemas (incluyendo Windows) actúa de la misma forma que la mayoría de *nix en las que comienza con una función autocompleta.

• Cuando se presiona en el teclado “tab”, la línea de comando de R busca la línea de comando para saber si el usuario esta tratando de entrar un nombre de archivo.

• El interpretador trata de adivinar lo más que pueda del archivo y escanea el directorio de trabajo y verifica si algún archivo parea con el nombre del archivo entrado.

Page 17: Introducción a la Programación en R

El Teclado “tab” • Si es un directorio que contiene los archivos

“commands-01.r”, “commands-02.r” y “commands-03.r”, entonces se escribe “c” y se presiona “tab” para que R suba por ti el “commands-0” hasta que encuentre una ambigüedad.

• Luego seleccionas algunas opciones y presionas el teclado “tab” nuevamente y escoges “1” para auto-completar el nombre del primer archivo.

• Nuevamente presionas el teclado de “tab” para suba el resto de “commands-01.r”.

Page 18: Introducción a la Programación en R

Utilizando “help”• Lo único que necesitas para adquirir ayuda en R es:

help.start()

• Luego podrás observar lo siguiente en pantalla:Making links in per-session dir ...

If ’sensible-browser’ is already running, it is *not* restarted, and youmust

switch to its window.

Otherwise, be patient ...

• Lo que significa que si un navegador de internet ya está trabajando, entonces el equipo completo de ayuda estará disponible en esa instancia del navegador de internet, de lo contrario el equipo completo de ayuda estará disponible en una nueva instancia de los sistemas preferidos.

Page 19: Introducción a la Programación en R

• La función “help” es una serie de documentos con hipervínculos, que guían al usuario en todos los aspectos de la operación R.

• La mayoría de las funciones están archivadas bajo “packages” y “base”.

• El motor de búsqueda disponible en la pagina principal es bueno y la búsqueda por palabra clave también disponible en la pagina principal puede ser muy útil.

• Si no estas familiarizado con las librerías y las funciones de R debe ser suficiente utilizar el navegador básico de ayuda.

Utilizando “help”

Page 20: Introducción a la Programación en R

• Si conoces en que necesitas ayuda puedes utilizar la función help().

• Conocemos que la función de regresión lineal es lm, entonces para encontrar ayuda con lmse debe escribir:

>help(lm)

ó

>help("lm")

• Cualquiera de estos subirá la página de lm en el sistema de navegación.

Utilizando “help”

Page 21: Introducción a la Programación en R

• La versión con las comillas solo es útil para esas funciones con varias palabras de clave que necesitan ser alimentadas en “help”.

• Esto sucede en los casos de ayuda en el operador asignado <-, donde help(<-)

confunde a R, pero help("<-") consigue la pagina para el operador <- en el sistemas de navegación de internet.

Utilizando “help”

Page 22: Introducción a la Programación en R

• Si no conoces la función en la cual necesitas ayuda y no deseas utilizar el navegador, entonces puedes utilizar la función help.search().

• Si desea ayuda encontrando comandos relacionados con regresión, entonces:

help.search("regression")

Utilizando “help”

Page 23: Introducción a la Programación en R

• Donde aparecerá de retorno en la pantalla

Help files with alias or concept or title matching "regression" using

fuzzy matching:eco(faraway) Ecological regression exampleexa(faraway) Non parametric regression test data Aexb(faraway) Non parametric regression test data B

......

• Una explicación corta de una de las líneas anteriores de este concepto es:eco(faraway) Ecological regression example

Utilizando “help”

Page 24: Introducción a la Programación en R

• eco(faraway) significa la función eco() de la librería faraway.

• Para adquirir la pagina de ayuda para eco() debe uno primero subir la librería faraway y después la pagina eco().

library(faraway)help(eco)

• El resultado será la pagina de ayuda para la función eco que aparece en el sistema de navegación de internet.

Utilizando “help”

Page 25: Introducción a la Programación en R

• La función help.search() hará una búsqueda a través de todas las funciones de todas las librerías de las cuales la instalación R conoce.

• Desafortunadamente la función help() no podrá subir en el sistema de navegación de internet la pagina para cualquier función de cualquier librería en la cual no fue cargada para esa sección.

• Por esta razón la librería faraway debe ser cargada con anterioridad.

Utilizando “help”

Page 26: Introducción a la Programación en R

Objetos y Funciones

Page 27: Introducción a la Programación en R

Creando funciones simples

• Un objeto puede crearse diciéndole a Rcómo leer un archivo, creado como parte de la corrida de un programa o simplemente creando objetos directos

Page 28: Introducción a la Programación en R

Creando funciones simples

• a <- 5

• Creando un objeto llamado “a” el cual tiene valor igual a 5

Page 29: Introducción a la Programación en R

<-

• Utilizado como el único operador para asignar valores en versiones antiguas de R.

• En versiones recientes, podemos utilizar “=” como operador de asignación.

• a <- 5

• a = 5

Page 30: Introducción a la Programación en R

• En este ejemplo, asignamos el valor 5 a la variable “a”

Page 31: Introducción a la Programación en R

• Se prefiere “<-” como operador de asignación para así no crear confusión con las pruebas de equivalencias.

• Si por error escribimos sin comillas (d <- a), lo que hacemos es asignarle al valor de “a” a “d”.

Page 32: Introducción a la Programación en R

• Podemos asignarle valor a la variable de un nombre o palabra.

Page 33: Introducción a la Programación en R

• Si llamamos una variable que no existe o que no ha sido creada, el programa indica un error:

Page 34: Introducción a la Programación en R

Listar objetos

• Para saber qué objetos hemos creado en la sección activa de R, utilizamos la función “R list” o “ls( )”.

• La función “ls( )” no tiene parámetros

Page 35: Introducción a la Programación en R

Eliminar o suprimir objetos

• Para eliminar variables del ambiente de trabajo activo utilizamos la función “rm( )”

• Si se utiliza sin parámetros, rm( ) borra todo lo que ls( ) mostraría en ese momento.

• Si se utiliza con parámetros, remueve la variable indicada y su valor correspondiente.

Page 36: Introducción a la Programación en R

ls( ) & rm( )

Page 37: Introducción a la Programación en R

Manipulando objetos simples

• Podemos asignar varios valores y utilizar variables para operaciones matemáticas.

Page 38: Introducción a la Programación en R

Nombrando objetos

• Anteriormente trabajamos con a, b y c.

• Éstos son variables y no nombres de objetos

• Los nombres de objetos en R son de la forma:– explaniatory.coefficient

• A pesar de permitirnos utilizar el punto (.), los caracteres !, -, $, entre otros, no son permitidos.

Page 39: Introducción a la Programación en R

Nombrando objetos

• R nos brinda la función make.names() que podemos utilizar para obtener versiones permitidas para nombrar las funciones con los caracteres indicados.

Page 40: Introducción a la Programación en R

Funciones

• R es un lenguaje de programación funcional

• El término funcional significa que emplea o utiliza funciones para maximizar el trabajo del programa.

Page 41: Introducción a la Programación en R

Creando una función simple

• Abrimos la consola de R y escribimos:

• Esta función es llamada con dos argumentos o parámetros (x y y).

• El cuerpo de la función:

– Suma los argumentos x y y

– los guarda en “result”

– El resultado se muestra en pantalla

Page 42: Introducción a la Programación en R

Creando una función simple

• Nos devuelve un mensaje de error si:

– Utilizamos variables no inicializadas

– Utilizamos la función sin parámetros

– Si se escriben parámetros demás

– Si se escribe parámetros de menos

• Si sólo escribimos el nombre de la misma, nos muestra la función.

Page 43: Introducción a la Programación en R

Creando una función simple

Page 44: Introducción a la Programación en R

Creando una función simple

• Todas las funciones se asignan de la misma forma, utilizando el comando “function( )”

• Dentro de los paréntesis se escribe la lista de parámetros que la función creada.

Page 45: Introducción a la Programación en R

Creando una función simple

• Si deseamos crear una función para dividir:

• Esta nueva función se utiliza con dos parámetros

• El primer parámetro es dividido por el segundo

Page 46: Introducción a la Programación en R

Creando una función simple

• Las funciones en R se escriben en una sola línea

• En un programa tipo archivo o editor de texto lo podemos escribir de forma larga

Page 47: Introducción a la Programación en R

TRABAJANDO CON FUNCIONES

Page 48: Introducción a la Programación en R

Creando vectores en R

• Para asignar el vector 1, 2, 3, 4 al objeto a:

• Utilizamos la función “c( )” para asignar valores 1, 2, 3, 4 a a.

• Al asignarle varios valores a un objeto, este se le llama “arreglo”.

• R permite realizar operaciones matemáticas con los arreglos ya que es un lenguaje de programación semi-orientado

Page 49: Introducción a la Programación en R

Creando vectores en R

Page 50: Introducción a la Programación en R

Trabajando con vectores en R

• Si tratamos de sumar los arreglos de diferente longitud, esperamos que R indique un error, pero no es así.

• Estos valores se obtienen de:– 1 + 5 = 6– 2 + 6 = 8– 3 + 5 = 8– 4 + 6 = 10

• Como a tiene 4 elementos (1, 2, 3, 4) y c sólo tiene 2 (5, 6) se parean:

• a(1) + b(1)

• a(2) + b(2)

• a(3) + b(1)

• a(4) + b(2)

Page 51: Introducción a la Programación en R

Grabando una sesión en R

• *nix systems

• Save.image( )

– Es una función dependiente del sistema operativo

– Se utiliza para guardar todo lo que tenemos en el ambiente de trabajo

– Por defecto se genera un archivo llamado “.RData“

Page 52: Introducción a la Programación en R

Grabando una sesión en R

• Todo archivo comienza con una parada (.)

• Es un archivo oculto que luego de ser llamado, necesitas de una función q( ) para poder salir.

• Si salimos de un ambiente de trabajo sin guardar los cambios, luego no podemos acceder los mismos.

Page 53: Introducción a la Programación en R

Grabando una sesión en R

• Si guardamos nuestro ambiente de trabajo, cuando abrimos uno nuevo, simplemente llamamos a “.Rdata” y tenemos nuestro ambiente anterior.

• A la hora de guardarlo, debemos observar en el directorio en el cual se grabó para así poder acceder sin problemas.

Page 54: Introducción a la Programación en R

Grabando una sesión en R

• Utilizando la función save.image( ) podemos asignarle un nombre al ambiente de trabajo

• Creamos un ambiente de trabajo llamado “mysession”

• Para poder subir o cargar el archivo, simplemente utilizamos:

Page 55: Introducción a la Programación en R

Sistema Windows

• Para guardar el ambiente de trabajo en R utilizamos las funciones:

– Save workspace

– Load workspace

Page 56: Introducción a la Programación en R

Trabajando con archivos

• La idea de trabajar con archivos viene de la posibilidad de añadir líneas de programación o comandos adicionales en un ambiente de trabajo en varias sesiones diferentes.

Page 57: Introducción a la Programación en R

Almacenando comandos

• Los archivos de texto en R son simples

• Pueden ser editados en cualquier programa que trabaje con texto

• Algunas aplicaciones que pueden utilizarse son:

– Wordpad

– Word

– Notepad

Page 58: Introducción a la Programación en R

Almacenando Comandos

• Podemos crear un archivo de texto llamado “bit-00.r”

Page 59: Introducción a la Programación en R

Almacenando Comandos

• Utilizamos la función “source( )”

• Llamamos el archivo bit-00.r

• R devuelve el resultado de la secuencia de comandos

Page 60: Introducción a la Programación en R

Almacenando funciones

• Escribimos la función en un editor de texto.

• Guardamos el archivo bajo el nombre “bit-01.r”

Page 61: Introducción a la Programación en R

Llamar funciones creadas

• Para llamar una función creada, vamos a File Source R code

Page 62: Introducción a la Programación en R

Llamar funciones creadas

• Seleccionamos el archivo:

Page 63: Introducción a la Programación en R

Llamar funciones creadas

• Luego de obtener la función, podemos utilizar la misma.

Page 64: Introducción a la Programación en R

SIMULACIONES DE PROBABILIDAD

Creando funciones

Page 65: Introducción a la Programación en R

Lanzamiento de un dado

• Esta función simula el lanzamiento de un dado una sola vez.

• Devuelve “TRUE” si el valor es par (2, 4 ó 6)

• Devuelve “FALSE” si el valor es impar (1, 3 ó 5)

Page 66: Introducción a la Programación en R

Lanzamiento de un dado

• Buscamos la función a través de R

• Ésta se ejecuta sin parámetros, ya que inicializamos tiros = 1

Page 67: Introducción a la Programación en R

Lanzamiento de un dado(5000 veces)

• Esta función simula el lanzamiento de un dado 5000 veces.

• Calcula la probabilidad empírica

• Genera una gráfica con los resultados obtenidos

Page 68: Introducción a la Programación en R

Lanzamiento de un dado(5000 veces)

Page 69: Introducción a la Programación en R

LANZAMIENTO DE UN DADO(VARIAS VECES)

Page 70: Introducción a la Programación en R

Lanzamiento de un dado(varias veces)

• Esta función simula el lanzamiento de un dado la cantidad de veces indicada a través de su parámetro.

• Calcula la probabilidad empírica• Genera una gráfica con los resultados obtenidos

Page 71: Introducción a la Programación en R

20 veces

Page 72: Introducción a la Programación en R

200 veces

Page 73: Introducción a la Programación en R

2,000 veces

Page 74: Introducción a la Programación en R

20,000 veces

Page 75: Introducción a la Programación en R