Вы находитесь на странице: 1из 13

Introduccin R (II)

Deybi Morales Len (Universidad Centroamericana UCA) 18/07/12

Este documento es parte de una coleccin de tutoriales elaborados para Grupo de Usuarios R de Nicaragua. R es un software estadstico (libre) de licencia GNU. Puede descargarlo desde http://www.rproject.org. En la elaboracin de este tutorial se ha hecho uso solo de softwares libres: Ubuntu, L X, Latex, LibreOce y R. Apoyamos Y el uso del software libre para los pases en vas de desarrollo.

Contents
1 Primeros comandos 2 Ayuda en R 3 Objetos 2 5 6

4 Cmo darle un directorio a R para guardar bases de datos incluidos objetos? 7 5 Instalar paquetes 6 Importar bases de datos
6.1 6.2

7 8
8 11

Ingresar observacin por observacin . . . . . . . . . . . . . . . . Importar bases de datos desde otros formatos digitales. . . . . . .

Revisiones 18/07/12, 20/07/12 & 22/07/2012

Se debe destacar que R es un lenguaje y entorno de programacin a como se expresan en wikipedia u otras fuentes que mencionan caractersticas de este software. Es por ello que no se debe preocupar en una interface amigable, sino en conocer los comandos necesarios para dar rdenes a R basado en los resultados estadsticos, matemticos o grcos que se desean obtener. Una vez vencida la curva inclinada de aprendizaje del lenguaje R, el usuario ver que R es ms fcil que los softwares comerciales. El lenguaje le permitir un mayor control de su trabajo y por que no decirlo?, dir adios al secretismo sobre la forma de obtencin de resultados a como sucede en los software comerciales.

Primeros comandos

Conocer comandos que nos permitan empezar con R, es algo fundamental. Revisar la memoria, obtener lista de paquetes, instalar paquetes y abrir la ayuda reducir la frustracin en el este primer trazo pedragoso en el camino de aprender R. Abrimos R en windows dando doble clic a su cono que es una R que tiene la apariencia de haber sido coloreada por un nio. Debe tener algn tipo de signicado. Ahora si se quiere abrir R en un sistema operativo linux, sencillamente debemos abrir la terminal y ejecutar el comando R y luego enter. Si contamos con la interface Rstudio en ambos casos (windows o linux) solo buscamos el cono que se asemeja a una bola de billar azul con una R blanca, muy llamativa. Al abrir R, aparece la siguiente advertencia:

R version 2.15.0 (2012-03-30) Copyright (C) 2012 The R Foundation for Statistical Computing
2

ISBN 3-900051-07-0 Platform: i686-pc-linux-gnu (32-bit) R es un software libre y viene sin GARANTIA ALGUNA. Usted puede redistribuirlo bajo ciertas circunstancias. Escriba 'license()' o 'licence()' para detalles de distribucion. R es un proyecto colaborativo con muchos contribuyentes. Escriba 'contributors()' para obtener ms informacin y 'citation()' para saber cmo citar R o paquetes de R en publicaciones. Escriba 'demo()' para demostraciones, 'help()' para el sistema on-line de ayuda, o 'help.start()' para abrir el sistema de ayuda HTML con su navegador. Escriba 'q()' para salir de R. [Workspace loaded from ~/.RData] >
Es lo nico en cualquier interface que nos dice que R es un software estadstico. Parte de la advertencia es que R no posee garanta alguna, esto es un requisito a cumplir para todo software que hace uso de la licencia GNU. Esta falta de garanta no tiene nada que ver con la calidad del software sino que es una advertencia para nes comerciales. Es decir, si este software se utiliza, vende o modica para nes lucrativos los daos derivados sern completamente responsabilidad de quien realiz la accin y no de la organizacin que administra el software. Las palabras que van antes de los dos parntesis son comandos. Se pueden mirar comando para obtener la licencia en la que se basa R, comando para citarlo en referencias y comando para mirar la lista de contribuyentes de R. Haremos un ejercicio divertido, unos de los comandos talvez el mas utilizado cuando habres por primera vez R, es demo(). Dnde escribir demo()?. Este se escribe adelante del smbolo de mayor >. Este simbolo siempre sobr como ltima lnea y nos da la indicacin de que R ha dejado de procesar la orden anterior y est preparado de recibir una nueva orden. A ejecutar

>demo()
Nos abrir una segunda ventana que contendr lo siguiente:

Demos in package 'base': error.catching More examples on catching and handling errors
3

is.things recursion scoping

Explore some properties of R objects and is.FOO() functions. Not for newbies! Using recursion for adaptive integration An illustration of lexical scoping.

Demos in package 'graphics': Hershey Japanese graphics image persp plotmath Tables of the characters in the Hershey vector fonts Tables of the Japanese characters in the Hershey vector fonts A show of some of R's graphics capabilities The image-like graphics builtins of R Extended persp() examples Examples of the use of mathematics annotation

Demos in package 'stats': glm.vr lm.glm Some glm() examples from V&R with several predictors Some linear and generalized linear modelling examples from 'An Introduction to Statistical Modelling' by Annette Dobson Nonlinear least-squares using nlm() 'Visualize' steps in Tukey's smoothers

nlm smooth

Use 'demo(package = .packages(all.available = TRUE))' to list the demos in all *available* packages.
En la base de R nos encontraremos con los ejemplos anteriores contenidos en los paquetes enlistados. Por ejemplo, si queremos echar un vistazo a la capacidad grca, solo ejecutamos con enter:

>demo(graphics)
Nos abrir otra ventana que contendr los grcos puestos de ejemplos por parte del paquete graphics. Dndo enter cambiar de grco. El usuario puede ir probando con otros paquetes enlistados como por ejemplo, perp, tan solo deber cambiar entre parntesis el graphics por perp. Ahora pues Qu son paquetes? denominadas comandos. Son archivos comprimidos en zip o ta.gz que condensan un conjunto de rutinas condensadas en funciones comunmente R al descargarse por primera vez e instalarse, trae

consigo un conjunto de paquetes bsicos. Los del ejemplo anterior son algunos de los que trae.

Ayuda en R
A diferencia de otros software su

Es necesario invocar la ayuda en R, se necesita de mayor interaccin con la ayuda de R para evitar las frustraciones. servidor ha tenido la experiencia de encontrar todo lo que necesita por medio de la pgina de ayuda, libros y foros de internet. Adems R cuenta con listas de correos donde millones de usuarios tienen tiempo de responder a todas las dudas surgidas. El primer paso es explorar la pgina ocial de R la cual es http://www.rproject.org. Seamos como nios, exploremos todo lo que est a nuestro alcance y llegaremos lejos. Hagmosnos preguntas y no nos frustremos pues en R para todo existes un camino dicil o fcil. En R tambin contamos con comandos especcos para invocar ayuda. Estos comandos son:

Reconocern en todo software la palabra help, esto es ayuda en nuestro idioma. R posee un comando con este nombre, si ejecutamos:

>help()
Nos aparecer una lineas sobre la utilizacin del comando ayuda, por lo que si queremos obtener la ayuda de con comando especco solamente escrbimos entre parentesis el comando:

>help(solve)
Aparecer la documentacin de ayuda de solve. Esta se compone de la presentacin una sintasis general, la explicacin de cada parte de la sintaxis y un ejemplo funcional. Esto funciona si el paquete que contiene el comando est activo. Soy de los que considera que la ayuda de stata no tiene la facilidad de la ayuda de R. Si queremos la ayuda sobre un paquete especco aplicamos esto:

>help(package="Matrix")
Al aplicar el ejemplo anterior nos saldr la ayuda disponible para el paquete especicado, presentndose adems la lista de comandos que tal ejecuta. Tambin obtenemos lo mismo con ?Matrix

R hace uso de navegador web para poner a disposicin un sistema base de ayuda oine pero completo. La manera de ejecutador eso con:

>help.start()

Este sistema es manejable para cualquier usuarios. Posee manuales y referencias adems de un fuerte como la lista de paquetes instalados en R.

Se puede hacer uso del anterior sistema de ayuda para buscar comandos o paquetes. Se debe ejecutar:

>??matrix
En el ejemplo con matrix nos llevar a una pgina con los resultados de la busquedad. Es importante recordar que R hace diferencia entre Maysculas y

Minsculas. En el ejemplo anterior se invoc el comando y no el paquete el cual empieza con mayscula.
Todas las ordenes anteriores se pueden recuperar con las tecla direccional arriba, se pueden volver a ejecutar o crear una nueva orden.

Objetos
Estos objetos pueden nombrarse con Por tal razn a diferencias de Stata y algo

Los que manipula R se llaman objetos. la palabra que est atr del <- .

similar a Eviews, en R podemos nombrar nuestros resultados y salidas grcas. Lo podemos invocar unicamente ejecutando el nombre que se le ha dado. Por ejemplo, si corremos una regresin, podemos llamarle regresion1. Si queremos recuperarla en la sesin de trabajo actual, solo escribimos regresion1 y nos aparecer.

Los objetos se acomodan en la memoria virtual que est utilizando R en ese momento. A diferencia de otros software, R no necesita previa reasignacin de memoria virtual o fsica para cargar grandes bases de datos.
Obtener una lista de los objetos que tiene R disponible en la actual sesin de trabajo:

>objects()
Como se notar, en la consola aparece la lista de objetos disponibles o creados por el usuarios y los cuales pueden invocarse con sus respectivos nombres. Estos pueden ser desde variables hasta bases de datos. Con el comando rm( ) y entre este parntesis los nombres incluidas las comillas podemos eliminar los objetos que no necesitemos. Dentro del parntesis R no reconoce los espacios por eso para separar elementos dentros del parntesis debe utilizarse las comas. Otro comando til para obtener la lista de objetos es ls( ). Todos los objetos se han almacenado en un espacio virtual llamado en R workspace. Este workspace se puede guardar en un archivo con la extensin .RData. Al guardar por medio de comandos este archivo se guarda en el directorio de trabajo previamente establecido en R.

Cmo darle un directorio a R para guardar bases de datos incluidos objetos?

Tener una carpeta especial es indispensable para trabajar con R, dentro de esta carpeta podemos crear subcarpetas que sean especcamente para cada sesin especial de trabajo. Esto evita tener problemas a la hora de utilizar nombres ya denidos en objetos. Para nombrar un directorio de trabajo ejecutamos la siguiente lnea:

> setwd("~/Escritorio/mi directorio de trabajo")


El ejemplo anterior se realiza en linux ubuntu, el comando setwd indica a R que vamos indicar una nueva carpeta de trabajo. Lo que va entre parntesis y comillas es la direccin de la carpeta. Todo lo que guardemos en R directamente desde comandos ser guardado en esa carpeta. Ahora, en Windows los que ria en comillas quedara as: C:\Escritorio\mi directorio de trabajo, vea la diferencia en las plecas y se menciona el disco duro o la memoria fsica.

La mayora de interfaces nos permite hacer lo anterior por medio de menu interactivos. En Rstudio solamente nos vamos al recuadro derecho inferior especicamente a la pestaa le, elegimos la carpeta o vamos a hacer clic a los tres puntos (...), nos permitir seleccionar la carpeta y damos aceptar, por ltimo nos vamos al botn More que tiene como smbolo una tuerca azul, al desplazarse el men seleccionamos Set As Working Directory. Listo ya hemos especicado el directorio.

Instalar paquetes
Se habia dicho con anterioridad que los

R a esta edicin casi 4000 paquetes.

paquetes agrupan rutinas que conforman un conjunto de funciones creada para ciertos nes. R viene con paquetes bsicos pero en internet pueden buscarse un conjunto de paquetes que personalicen nuestro R para nuestras diario trabajo en la profesin o la universidad. Existen paquetes agrupados en econometra, nanzas, clculos, etc. Los paqutes estn disponibles en internet las 24 horas del das desde el interior del saln de informticas de reconocidos institutos de investigacin y universidades. ejemplo: ineq es un paquete que integra a R funciones para medir desigualdad con respecto aun indicador en una muestra poblacional. En este paquete encontramos el ndice gini y la curva de lorenz, indicadores bsicos para medir la concentracin de los ingresos de las personas. Para instalar ineq se ejecunta en R: El comando para instalar un paquete se mir en el siguiente

> install.packages("ineq")

Si ejecutamos esto por primera vez nos preguntar de qu instituto o universidad del mundo deseamos obtenerlo. No tendrn diferencia alguna porque solo son espejos de la web ocial de R, espejos en el mundo informtico se reere una computadora que aloja una pgina web igual a la original sin ninguna diferencia notable. Se recomienda elegir el espejo que se encuentre ms cerca de su pas para hacerle ms eciente la descarga a R. Este comando install.packages nos solo descargar el paquete sino que tambin las dependencias. Las dependencias son otros paquetes que permitir que ineq cumpla su cometido. Puedo descargar paquetes sin tener internet? La pgina para descargarlos es de http://dirichlet.mat.puc.cl/web/packages/ para el caso de la Ponticia Universidad Catolica de Chile. Se puede ir un a cyber, la casa de un amigo o donde tengamos accesos a internet ya sea en el celular, ipad o tablet, ingresar a la pgina ocial de R y descargar el paquete. Si lo vamos a utilizar en un R instalado en Windows, descargar el paquete con extensin .zip, si fuera para linux ser necesario descargarlo en extensin .tar.zg. No se deben olividar descargar tambin las dependencias. Podemos llevar nuestros paquetes en una memoria usb, disco o celular y descomprimirlo en una caperta llamada win-library en windows o pc-linux-gnu-library en linux . Esta carpeta se encuentra en otra llamada R que la puede encontrar en Mis documentos en windows o Carpeta persona en linux. Ahora pues solo resta activarlos y este paso solo se logra con el comando library() y entre parntesis y comillas mencionar el paquete. Ejemplo:

> library("ineq")

Importar bases de datos


Ingresar observacin por observacin. Ingresar a R una base de datos contenida en un archivo que puede estar en nuestra computadora, memorias o en internet.

En todo software existen dos forma de importar bases de datos. Estas son:

En este tutorial vamos a ver las dos formas. Son nuestros primeros pasos para trabajar con R.

6.1

Ingresar observacin por observacin


Ser necesario hacerlo observacin por

Cuando tenemos una base de datos solo disponible en un documento fsico o ingresar respuestas de una encuesta. observacin a esto conocemos como digitalizar. La mayora de usuarios informticos ingresar las observaciones en excel, nosotros podremos hacerlo directamente a R. En ocaciones es mejor ingresar directamente a excel o LibreOce Calc para dejarla disponible en un formato universal aceptado por cualquier otro software. Actualmente se dispone de un software comercial llamado Stat

Transfer para convertir a varios formatos aun no existe una variante libre, algo muy lamentable. Pero tenemos la opcin de convertir bases simples elaboradas en R a los formatos ms comunes utilizando comandos de R, esto lo veremos ms adelante en exportar. Con el ltimo mtodo talvez no nos haga falta un Stat transfer pero aun existen formatos a los cuales no podremos importar. La forma ms simple consiste formado vectores. Por ejemplo crear el vector con los nmeros 1, 4, 3, 6, 8, 9 en el orden para la variable x. Sera:

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


Con un enter ya habriamos creado la variable x con las anteriores observaciones.

> x [1] 1 4 3 6 8 9 >


Igualmente podemos ingresar otra variable. Queda como ejercicio que el lector pruebe ingresando 4, 5, 2, 5, 9, 7 a una nueva variable nueva llamada y. Si disponemos de variables ya sea en Microsoft Word o LibreOce Write podemo seleccionar cada variable y pegarla en R, con la forma copy - paste. Selecionamos la variable en word, excel, write o calc; seleccionamos desde la primera hasta la ltima observacin. Clic derecho copiar. Aplicamos la siguiente lnea en R:

> y <- scan()


Al dar enter nos presenta:

1:
Este es el momento exacto para dar clic derecho y pegar. queda as: Damos enter y

> y <- scan() 1: 4 2: 5 3: 2 4: 9 5: 7 6: Read 5 items >


Nos da el mensaje de haber ledo 5 observaciones. Adems si ejecutamos y y luego enter nos aparecern las observaciones que hemos ingresados a y. Para ingresar una tabla completa, seleccionamos toda la tabla incluyendo nombres y observaciones. aplicamos la siguiente lnea: Damos clic derecho y copiar. Nos vamos a R y

> base <- read.table("clipboard", sep="", header=TRUE) >


El nombre base es como se ha nombrado en R la nueva base de datos. Recuerde que la palabra o letra que est antes de los smbolo <- es como se llamar el objeto en la memoria virtual de R. El comando read.table lee bases de datos que est contenida en archivos de textos .txt, en nuestro caso leer la tabla que hemos copiado en el portapeles, esta tabla se llama clipboard, en el caso del argumento sep=  le estamos diciendo a R que cada columna est separada por espacio, se puede cambiar por / o , si estamos importando tablas incluidas en un archivo de texto .txt o .csv. El siguiente argumento header=TRUE le indica a R si cada variable posee nombre, si en vez de TRUE, hacemos uso de FALSE, sera decirle a R que nombre las variables omitiendo los nombres de las primeras las por defecto R la nombrar como V1, V2, V3, etc.

Despus de ingresar una base de datos de la forma anterior es necesario aplicar el comando attach () para poder trabajar por separado cada variable.

> attach(base)
Si quisieramos crear un data.frame (estos son conjunto de variables ordanadas como en una hoja de clculo) aplicariamos:

> y <- scan() 1: 4 2: 5 3: 2 4: 9 5: 7 6: Read 5 items >


Nos da el mensaje de haber ledo 5 observaciones. Adems si ejecutamos y y luego enter, nos aparecern las observaciones que hemos ingresados a y. El comando scan() tambin sirve para ingresar observacin por observacin sin necesidad de utilizar el comando para vector c(). Como habr notado en el ejemplo anterior, despus del enter a la linea y <- scan() se da un enter y obtenemos un espacio para agregar una observacin, otro enter para la siguiente observacin y asi consecutivamente. Al dar doble enter el comando scan() dejar de recibir observaciones. Para ingresar una tabla completa, seleccionamos toda la tabla incluyendo nombres y observaciones. aplicamos la siguiente lnea: Damos clic derecho y copiar. Nos vamos a R y

> base1 <- data.frame(x,y,z)


o bien

10

> base1 <- data.frame(x,base)


Esto crea una base de datos que agrupa las variables recientemente creadas. Con este comando data.frame() tambin podemos unir otra base de datos. No hay ninguna decisin arbitraria al aplicarlo.

6.2

Importar bases de datos desde otros formatos digitales.

R tiene un potente paquete llamado foreign, este paquete nos permite importar bases de datos que ya se encuentran los formatos de softwares estadsticos ms comunes. Por ejemplo, el .sav de SPSS y el .dta de Stata. Para poder ingresar de otros formatos podemos aplicar el comando ayuda para el paquete foreign.

> ?foreign
Obtendremos una explicacin sencilla de qu formatos puede leer. Por ejemplo para leer formato en SPSS, la ayuda nos da el comando read.sav, debe recordar que sav es la extensin de los archivos de stata. Si ahondar en la sintaxis que nos permite hacer ms, presentamos cmo debemos importar desde SPSS: Activar el paquete foreign y ejecutar la lnea de importacin:

> library(foreign) > base <- read.spss("POBLACION.sav")


Despus de la base de datos en SPSS pueden agregarse otros elementos que nos permita personalizar la importacin como por ejemplo omitir las etiquetas. Esto se puede estudiar desde la ayuda del paquete foreign. Primero el nombre que va tener nuestra base en R, luego los cotidianos <, siguindole el comando read.spss o read.dta (para Stata), etc. Luego abrimos parntesis, despus comillas, prximo el nombre de la base incluido su extension, nalizamos cerrando comillas y parntesis. Debo advertir que solo agregra el Si nombre de la base entre comillas funcionar si la base ha sido guardada en la carpeta del Directorio de trabajo que se enseo a crear con anterioridad. donde se encuentra nuestra base en la computadora o desde internet. R permite importar base de datos desde el propio internet, solo debe copiarse y pegarse la direccin completa de la base. Para tal n uno se coloca en la pgina web que contiene la base de datos. Se da clic derecho sobre el enlace de la base y se selecciona Copiar la ruta de enlace o Copiar enlace. La direccin que obtenemos la pegamos entre las comillas, ejecutamos la lnea de comando y R empezar a descargar. Una paquete interesante que demuestra que R puede conectarse a bases de datos online se llama WDI. Puede descargarlo y revisar la ayuda. tal no fuera el caso, entre comillas deberamos agregar la direccin completa de

11

Volviendo al tema. rea.dta.

La lnea anterior tambin sirve con datos de Stata,

nicamente segn nos dice la ayuda de foreign debemos cambiarnos al comando

> library(foreign) > base <- read.dta("~/Escritorio/Econometria / + base datos stata/BASE DE DATOS/poblacion.dta")
Con anterior ejemplo tambin damos como quedara la direccin de una base de datos desde mi Sistema Operativo Linux. Tambin tenemos el paquete gdata, excelente para leer archivos de excel. Primeramente habr que instalar este paquete porque no est incluido de base en R.

> install.packages("gdata") > library(gdata)


Cuando nos vamos a ?gdata nos explica que para importar desde excel hay que hacerlo desde la siguiente lnea:

> base <- read.xls("basedatos.xls")


Recuerde que si la base de datos no est en la carpeta establecida como Directorio de trabajo, deber ponerse la direccin completa entre comillas. Este paquete tambin lee excel 2007, es decir archivos con la extensin .xlsx con el mismo comando read.xls. Ahora si agregamos coma seguida de sheet=1 estaremos indicando que la tablas a pasar a R est en la hoja 1.

> base <- read.xls("basedatos.xls", sheet=1)


Los nuevos libros de estadsticas o econometra, traen los su datos en un disco o descargables desde internet en su formato de software preferido o desde excel. Pero los antiguos libros traan las bases de datos en un formato universal aceptable por cualquier software. Estos formatos universales son archivos de textos y cvs delimitados por comas, poseen las extensiones .txt y .csv. A igual que todo software R ya posee por defecto la manera de leerlos y se puede hacer con las siguientes lneas:

Si la base est en bloc de notas.

> base <- read.table("basedatos.txt", sep="", header=TRUE)

Si la base est en CSV.

> base <- read.csv("basedatos.csv", sep=",", header=TRUE)


No es muy comn encontrarnos con una base de datos ya en formato R. Pero mientras avanza el conocimiento de esta potente herramienta nos iremos encontramos con archivo .RData. Si nos encontraramos con una base con la anterior extension, simplemente corremos esta lnea si esta base de datos se encuentra en nuestros Directorio de Trabajo:

12

> load("base.RData")
Hemos podido compartir un buen material. Se debe poner en prctica esta leccin ya que es base fundamental para empezar a trabajar con R. Es necesario tomar nota de esto: antes de ingresas una base de datos desde un archivo a R,

se debe asegurar que en la primera la nicamente aparecen los encabezados o nombres de cada variable, si no es el caso tendramos que editar la base con su respectivo software.

El prximo tutorial se llamar Estdsticas bsicas R (III). La finalidad de este y otros tutoriales de mi autora es poner a disposicin de la comunidad una coleccin exhaustiva de tutoriales sencillos y en espaol para aprender a utilizar R. Comunicarse a morales.economia@gmail.com si desea aportar a este manual con sugerencias, comentarios, dinero o unirse a esta redaccin. Todos los aportes sern mencionados. Gracias de antemanos?. Grupo de Usuarios R Nicaragua: https://www.facebook.com/groups/usuariosrnicaragua/

13