You are on page 1of 49

Una introducci on al lenguaje R:

Miguel Angel Chong R. miguel@sigma.iimas.unam.mx


IIMAS-UNAM Especialidad en Estad stica

9 de agosto del 2011

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Un poco de historia
Entre 1975 y 1976 se desarrollo en los laboratorios Bell el lenguaje de programaci on estad stico S, conocido hoy en d a como SPlus. Fue desarrollado principalmente por John Chambers, despu es se le unieron al proyecto Rick Becker y Allan Wilks. S no es software libre. El lenguaje R es un proyecto de software libre usado tambi en para an alisis estad stico y gr aco, desarrollado en un principio por Robert Gentleman (EU) y Ross Ihaka (Nueva Zelanda) en el Departamento de Estad stica de la Universidad de Auckland en agosto de 1993. Su desarrollo actualmente es responsabilidad del R Development Core Team.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Un paquete es una serie de programas que se distribuyen conjuntamente, y un lenguaje de programaci on es un dialecto articial dise nado hacernos entender con la computadoras. El lenguaje est a formado por un conjunto de s mbolos y una sintaxis que denen su estructura. En R contamos con paquetes para resolver problemas estad sticos como pruebas de hip otesis estad sticas, modelos lineales y no lineales, algoritmos de clasicaci on, series tiempo, problemas de an alisis num erico, etc. A su vez, R es tambi en un lenguaje de programaci on, es decir que el usuarios puede hacer sus propias funciones usando las ya existentes. Muchas funciones con las que ya contamos por default est an programadas en R, pero tambi en hay funciones que pueden estar desarrolladas en C, C++ o Fortran.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

R es proyecto: colaborativo, es decir que sus usuarios pueden publicar sus paquetes a toda la comunidad despu es de un proceso de aceptaci on, abierto, esto implica que uno puede ver los codigos de los paquetes y adem as uno puede modicarlos. Existe un repositorio ocial de paquetes, en otras palabras, hay servidor donde se encuentran almacenados los paquete donde uno puede descargarlos.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Operadores aritm eticos


Una vez que abrimos R nos aparece el simbolo >, signica que estamos listos para empezar a trabajar. Podemos ingresar una expresi on aritm etica entre dos n umero usando operadores aritm eticos y el resultado obviamente ser a otro n umero. Ar tm eticos + * / ^ suma resta multiplicaci on divisi on elevar a una potencia

Ejemplo > 2 + 2 [1] 4 Como en una calculadora nosotros podemos calcular las siguientes funciones: sqrt(), log(), exp(), sin(), cos().
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Operadores de comparaci on
Se pueden comparar dos n umero con los siguientes operadores. Condicionales menor que mayor que igualdad diferentes menor o igual a mayor o igual a

< > == != <= >=

el resultado en este caso no es un n umero sino un valor l ogico: TRUE o FALSE. > 5<9 [1] TRUE > 10<9 [1] FALSE
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Operadores l ogicos
Los operadores l ogicos producen un resultado TRUE o FALSE y sus operandos son tambi en valores l ogicos L ogicos && || Y O

Supongamos que tenemos dos proposiciones l ogicos A y B, donde A y B puede tomar uno de dos valores de verdad: TRUE o FALSE entonces la tabla de verdad de los operadores && y || son

A TRUE TRUE FALSE FALSE

B TRUE FALSE TRUE FALSE

A&&B TRUE FALSE FALSE FALSE

A TRUE TRUE FALSE FALSE

B TRUE FALSE TRUE FALSE

A||B TRUE TRUE TRUE FALSE

En el caso del operador negaci on de una proposici on l ogica usamos el s mbolo !, antes de la proposici on, es decir !A. Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Otros operadores binarios muy importantes son <- o = : ? el operador asiganci on de valores a un objeto el operador para crear sucesiones se usa para denir la f ormula de un modelo usado para obtener ayuda

Una vez que ya sabemos asignar valores a objetos debemos de saber ciertas reglas R es sensible a may usculas y min usculas Los nombres de los objetos pueden contener cualquier combinacion de caracteres excepto Comenzar el nombre del objeto con un n umero Que el objeto contenga alguno de los siguientes s mbolos especiales $, %,# Espacios en blanco en medio del nombre.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Uso del editor de R


La manera en que uno puede hacer comentarios en R es con el s mbolo #.
# # # # # Esto es un comentario, no se ejecuta en la consola. Un comentario sirve para describir el programa usalo. Conviene acostumbrarse a comentar los programas. cada linea que uno quiere comentar debe empezar con el s mbolo gato.

El uso de la consola en ocasiones no es muy pr actico. R cuenta son su propio editor que nos ofrece las siguientes ventajas Si escribir varias lineas de c odigo y tener una acceso mas eciente a ellas. Podemos guardar nuestro trabajo con extensi on *.r Desde el editor se puede correr alguna parte del c odigo seleccionado con Ctrl + r.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Como en estad sticas lo m as com un es trabajar con un conjuto datos (una muestra) es conveniente saber manipular vectores. scan() podemos leer datos del teclado o de alg un chero. c(...) concatena elementos o vectores para generar un vector rep(x, no_veces) repite el x, el n umero de veces que queramos seq(de, hasta,incremento) hace una sucesi on de puntos que van de un punto inicial a uno nal con un incremento jo dado. Una de las ventajas de R es que puede manipular vectores de datos como si fueran objetos individuales, es decir que se pueden hacer todo tipo de operaciones aritm eticas con vectores que tengan la misma longitud. Las operaciones se realizan elemento a elemento.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

La forma de acceder a un subconjunto de datos en un vector es usar un n umero entre corchetes, este n umero es lo que se llama ndice. El primer elemento de vector tiene el ndice 1, El segundo tiene el 2 y as sucesivamente. Ejemplos x[n] x[-n] x[1:n] x[c(1,5,9)] Acceder al elemento n del vector x Accede a todos los elementos de x menos al n Seleccionar los elementos entre los ndices 1 y n Acceder a los elementos en los ndices 1, 5 y 9.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Operadores binarios y unarios Vectores y operaciones con vectores

Primeras gr acas
Una vez que ya tenemos un vector, el primer paso para el an alisis de los datos es la generaci on de gr acos. La funci on plot(x) sirve para gr aca los valores del vector x o para hacer gr acas bivariadas entre dos vectores de la misma dimesi on plot(x, y). Algunos par ametros para modicar nuestras gr acas son: type dentro de los tipos est an: p para puntos l para lineas, b para puntos y lineas a la vez, c lines punteadas, h para histograma o lineas verticales, s para unir los puntos en forma de escal on. main t tulo principal de la gr aca. sub subt tulo de la gr aca. xlab, ylab t tulo de los ejes x y y respectivamente.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Expresiones y objetos
La interacci on b asica en R es v a la evaluaci on de expresiones, es decir, el usuario da una expresi on y el sistema la eval ua e imprime el resultado. Todas las expresiones de R regresan un valor (posiblemente NULL). Algunas expresiones no son evaluados como un output en la consola sino m as bien como una ventana de gr acos o al ir a escribir en un archivo. Un objeto es un t ermino abstracto usado para cualquier cosa que se pueda asigna a una variable. Hasta ahora casi exclusivamente hemos hablado de vectores num ericos. En vez de discutir sobre que son los objetos veamos como generarlos y qu e hacer con ellos. Gran parte de la sintaxis de las expresiones no tiene mucho sentido sin el conocimiento de los objetos sobre los que se trabaja. A continuaci on introduciremos nuevos objetos y de elementos del lenguaje.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Una matriz en matem aticas es una arreglo bidimensional de n umeros, y una forma c omoda de crear matrices es utilizar la funci on de matrix: > matrix (1:12, nrow = 3, byrow= TRUE) Observe c omo el byrow = T hace que la matriz llenada por renglon La multiplicaci on entre matrices la podemos hacer con el operador %*%. Y algunas funciones u tiles que operan sobre matrices son rownames, colnames que se usan para cambiar el nombre la funci on t se usa para transposici on, solve() nos devuelve la inversa, eigen() nos regresa los vectores y valores propios, etc. Podemos concatenar vectores con la misma dimensi on, como columnas o renglones, utilizando las funciones cbind y rbind respectivamente.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

factor

Es com un que en los datos estad sticos se tengan las variables categ oricas, estas indica alguna subdivisi on de los datos. Ejemplo: clase social, diagn ostico de una enfermedad, alguna etapa, etc. Por lo general, se trata de registrar un c odigo num erico. Estas variables deben ser especicadas como factor en R. Se trata de una estructura de datos que (entre otras cosas) hace que sea posible asignar nombres signicativos con las categor as. Un factor que tiene un conjunto de niveles.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Veamos un ejemplo: El primero creamos un vector num erico, que codica el dolor por nivel de cinco pacientes.

> dolor <- c(0,3,2,2,1)


Queremos tratar esta variable como categ orica, por eso creamos el objeto fdolor del tipo factor y decimos cuales son los niveles.

> fdolor <- factor( dolor, levels = 0:3)


Con levels es el nombres de nivel que se puede cambian a cuatro cadenas de caracteres especicadas

> levels(fdolor) <- c("ninguno", "suave", "medio", "graves") > fdolor


con as.numeric podemos ver el c odigo num erico asignado a cada categor a.

> as.numeric(fdolor)
Notemos que la original codicaci on eran n umeros 0-3, la representaci on interna de un factor siempre utiliza los n umeros que comienzan en 1.
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Si en factor (. . .), no se especica con el argumento levels de los niveles, por default ser an asignados los niveles de manera alfab etica y esto no siempre es conveniente Ejemplo > texto.dolor <- c("ninguno","ninguno","suave", "graves","ninguno", "medio","medio", "suave") > ftexto.dolor <- factor(texto.dolor) > ftexto.dolor > as.numeric(ftexto.dolor) En cambio, si queremos asignar a ninguno el valor 1, a suave el valor 2, a medio el valor 3 y grave el valor 4 lo especicamos con el argumento levels > dolor3 <- factor(texto.dolor,levels= c("ninguno","suave", "medio","graves")) > dolor3 > as.numeric(dolor3)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Listas
A veces es u til combinar una colecci on de objetos en un gran objeto compuesto. Esto se puede hacer usando listas. Podemos construir una lista usando la funci on list. Como ejemplo, considere un conjunto de datos > uno <- c(5260,5470,5640,6180,6390, 6515,6805,7515,7515,8230,8770) > dos <- c(3910,4220,3885,5160,5645,4680,5265,5975,6790,6900,7335) > tres <- matriz(0, 5, 5) Vamos a combinar estos vectores individuales en una lista > mi_lista <- list (antes = uno, despues = dos, matriz= tres ) > mi_lista Los componentes de la lista se mandan llamar de acuerdo a los nombres de los argumentos utilizados en la lista. > mi_lista$antes Muchas de las funciones de R m as que regresar un u nico vector de valores y devuelven los resultados en forma de una lista.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

data.frame
Una data.frame corresponde a una matriz de datos que puede tener vectores num ericos y/o factores de la misma de longitud, que se relacionan, de manera que los datos en la misma posici on proceden de la misma unidad experimental (sujetos, animales, etc.) Se puede crear un data.frame de datos de variables preexistentes: > d <- data.frame (uno, dos) > d Al igual que con las listas, las variables de d son accesibles usando la notaci on $: > d$uno o como lo haciamos de manera matricial o vectorial usando corchetes > d[,1]
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Un ejemplo de data.frame es iris, este es un conjunto de datos consta de 50 muestras de cada una de tres especies de ores Iris ( Iris setosa , Iris virginica y Iris versicolor ). Cuatro caracter sticas se midieron en cada muestra, son la longitud y la anchura del s epalo y p etalos , en cent metros.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Ya vimos c omo extraer los datos mediante uno o varios ndices. En la pr actica, a menudo tendr a que extraer los datos que satisfacen determinados criterios. Esto puede hacerse simplemente mediante la inserci on de una expresi on relacional lugar del ndice, as : > dos [uno> 7000] Por supuesto, este tipo de expresi on s olo tiene sentido si las variables que van en la expresi on relacionales tienen la misma longitud que la variable que se ha indexado.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Los operadores l ogicos & (l ogica Y), | (valor l ogico o ) para vectores. Por ejemplo > dos[uno > 7000 & uno <= 8000] Vale la pena echar un vistazo m as de cerca a lo que realmente sucede cuando se utilizar una expresi on l ogica en forma de ndices. El resultado de la expresi on l ogica es un vector l ogico > uno> 7000 & 8000 <= uno La indexaci on con un vector l ogica implica que se seleccionar an los valores que en el vector l ogico sean TRUE.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

En particular, puede ser u til para extraer todos los datos para los casos que cumplan ciertos criterios > d[d$uno> 7000,] Aqu hemos extra do de las las de la estructura de datos donde uno >7000. Observe que los nombres de las las son los mismos que el data.frame original. Tambi en se podr a haber hecho de esta manera: > sel <- d$uno > 7000 > sel > d[sel,] Lo que paso es que sel (selecci on) se convierte en un vector l ogico que es TRUE correspondiente a los cuatro casos que cumplen la condici on. Indexar con d [sel, ] proporciona los datos en las las donde sel es TRUE
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

C omo bajar un paquete


A continuacion vamos a descargar un paquete llamado ISwR puesto que vamos a usar un data.frame que viene ah
1

Una vez parados en la consola vamos al men u principal damos click en paquetes Damos click en seleccionar espejo CRAN, nuevamenete como en el caso de la instalaci on seleccionamos un espejo que est e cercano a nosotros Nuevamente vamos desde la consola a paquetes y ahora le damos a instalar paquetes Nos aparece una lista ordenada alfab eticamente de todos los paquetes disponibles, buscamos el ISwR y le damos doble click Una vez que se termine de instalar el paquete vamos por u ltima vez a paquetes y le damos a cargar paquete y seleccionamos ISwR Listo! el paquete est a cargado. Otra forma de cargar el paquete una vez hecho los pasos 1 al 5 es escribir >library(ISwR)
Curso de R

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Para lo siguiente se necesita cargar el paquete ISwR. Las t ecnicas de indexaci on para la extracci on de partes de un data.frame son un poco engorrosas. Hay un par de funciones para hacer las cosas un poco m as f aciles > thuesen De el anterior data.frame que sea un subconjunto del anterio > sub_thue <- subset(thuesen,blood.glucose<7) o tambien crear un data.frame pero con una columna m as en funci on de otra dada > trasn_thue <transform(thuesen,log.gluc=log(blood.glucose)) subset tambi en trabaja en vectores individuales.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Valores faltantes

En el an alisis de datos, puede pasar que un conjunto de datos no est an disponibles (el paciente no se presento, un experimento fallido, etc.), un software estad stico necesidades formas de trabajar con estos datos. R permite trabajar con estos datos denotados como NA. Los c alculos con NA produce NA . La funci on is.na (x) averiguar cu ales son los elementos de x que se registran como faltantes (NA), esto es importante pues no se puede hacer comparaciones de la forma x == NA.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Recordemos que un data.frame es una lista de vectores y/o factores de la misma de longitud, que se relacionan, de manera que los datos en la misma posici on proceden de la misma unidad experimental . Dentro de los data.frame podr amos queres agrupar datos en otro data.frame data.frame > setosas= iris[iris$Species == "setosa", ] > versicolores= iris[iris$Species == "versicolor", ] Alternativamente se puede utilizar la funci on split, que genera una lista de vectores de acuerdo a la agrupaci on. > otra_tabla<- split(iris$Petal.Length,iris$Species)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Primero vamos a leer de un archivo unos datos > uno= scan("C:\\...\\uno.txt") > dos= scan("C:/.../dos.txt") Es trivial ordenar un vector en R usando la funcion sort Sin embargo, la clasicaci on de un s olo vector no es generalmente lo que uno requiere. M as bien, uno quiere ordenar unas series de variables de acuerdo a los valores otra variable. Hay una forma de hacer esto que puede ser un poco abstracta al principio, pero es realmente muy potente. En primer lugar, calculemos un ordenamiento por ndice de una variable. > order(dos) El resultado son n umeros del 1 al 11 (la longitud del vector original llamado dos) Interpretaci on puede leerse como: El orden desendente de dos puede hacerse tomando los ndices de la siguiente manera 3, 1, 2, 6, etc. Usando esta indexaci on podemos ordenar el vector uno > aux= order(dos) > uno[aux]
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

> sexo= factor( c(1,2,2,2,2,2,1,1,1) ) > levels(sexo)= c("M","H") > edad= c(9,10,10,11,9,9,10,11,8) > t_sangineo= factor(c(1,2,1,2,2,2,1,1,3)) > levels(t_sangineo)= c("O","A","B") > tabla= data.frame(sexo,edad, t_sangineo) > tabla El ordenamiento por varios criterios se hace simplemente al tener varios argumentos para order. Por ejemplo, order(sexo, edad) har a primero una divisi on entre los hombres y mujeres, y despu es dentro de cada sexo ordenar a por la edad. > aux= order(sexo, edad) > tabla[aux,] El ordenamiento en orden inverso se puede manejar, por ejemplo, multiplicando por menos uno una variable. > aux= order(sexo, -edad) > tabla[aux,]
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Hasta ahora, hemos visto los componentes y objetos del lenguaje R. Como R es un lenguaje de programaci on, permite la ejecuci on expresiones condicionales y el uso de ciclos. Hay varios de ciclos en R que ser an u tiles cuando hagamos nuestras propias funciones. Veamos la sintaxis de esto ciclos Sintaxis del if if( condicion ) { expresi on si la condici on cierta } else { expresion si la condici on es falsa } Sintaxis del while while( condici on ) {expresi on} En el ciclo while (condici on) la expresi on debe ser evaluada, siempre y cuando la condici on es TRUE. Sintaxis del for for ( ndice in vector ) {expresi on}
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Lectura de un archivo

Algunos comandos con los que contamos para leer datos de en un archivo son scan("...ruta") read.csv("...ruta") read.table("...ruta") algunos par ametros utiles para estas funciones son: header para leer encabezados sep para saber cu al es el caracter que separa los datos

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Escritua en alg un archivo


Una vez que hemos trabajado nuestros datos y tenemos nuestros resultados guardados en una variable x, quisieramos poder guardarlos. Algunos comandos para guardar datos en alg un archivo son: write(x,"...ruta") write.csv(x,"...ruta") write.table(x,"...ruta") y algunos par ametros que nos pueden ser utiles son: append = FALSE para agregar al nal de un archivo quote = TRUE para ponerle comillas a lo que no es num erico sep = " " el caracter con el que va a separar los datos row.names = TRUE para poner los nombres del los renglones col.names = TRUE para poner los nombres de las columnas

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Podemos ir a leer y escribir de un libro de excel siempre que cargemos el paquete xlsReadWrite con las funciones: read.xls("...ruta") write.xls(x, "...ruta") Algunos par ametros de read.xls son colNames = TRUE type = "data.frame" sheet = 1 from = 1 rowNames = NA y algunos par ametros para write.xls son colNames = TRUE sheet = 1 from = 1 rowNames = NA

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Algunas funciones ya programadas


paste() pega vectores despu es de convertirlos en caracteres ! choose(n, k) calcula las combinaciones de n en k , es decir (nn k )!k ! max(x) el m aximo elemento de x min(x) el m nimo elemento de x range(x) calcula el rango, es decir c(min(x), max(x)) sum(x) suma los elementos de x diff(x) calcula la diferencia entre x[i] - x[i-1] prod(x) el producto de los elementos de x round(x, n) redondea el elemento x a n decimales cumsum(x) devuelve la suma acumulada del elemento x[1] hasta x[i] para i = 1, 2, . . . cumprod(x) igual que cumsum() pero con el producto rowSums(x) suma los renglones de un objeto matriz; colSums(x) lo mismo que rowSums() pero para las columnas
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

mean(x) el promedio aritm etico x median(x) la mediana de los elementos de x var(x) calcula la varianza de los elementos de x (calculado sobre n-1) sd(x) desviaci on est andar de x cov(x, y) covarianza entre x y y rowMeans(x) la media por renglones colMeans(x) media por columnas columnas

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Sintaxis para escribir una funci on


Gran parte de las cosas que uno necesita resolver no est an hechas en una funci on, entonces usando las funciones ya hechas podemos programar nuestras funciones. La sintaxis para hacer nuestras funciones es nombre_para_la_funcion <- function ( lista_de_argumentos ) { instrucciones return (resultado o resultados en forma de lista) }

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

La funci on de densidad de una variable aleatoria X , denotada por fX (x ), es una funci on matem atica intenta modelar el comportamieto de una poblaci on, y cumple con fX (x ) 0 fX (u )du = 1 fX (xi ) = 1
i

en el caso continuo en el caso discreto

Graquemos la funci on de densidad de una normal x= seq(0,2.5,by=0.01) densidad= dnorm(x, 1.70,sqrt(0.15)) plot(x,densidad)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Funci on de distribuci on se dene como FX (x ) = el caso continuo Propiedades Es una funci on continua por la derecha. Es una funci on mon otona no decreciente. limx F (x ) = 0 y limx F (x ) = 1

x f (u ) du

en

distribucion= pnorm(x, 1.70,sqrt(0.05)) plot(x,distribucion) Funci on cuantil. Dada una funci on de distribuci on FX (), la funci on cuantil devuelve un valor x tal que FX (x ) = p con 0 p 1.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Generaci on de n umeros aleatorios

Podemos generar n n umeros pseudo-aleatorios de las siguientes variables aleatorias discretas rbinom(n, size, prob) Binomial rpois(n, lambda) Poisson rgeom(n, prob) geom etrica rhyper(n, m, u, k) hipergeom etrica rnbinom(n, size, prob) binomial negativa

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Y de las siguientes variables aleatorias continuas runif(n, min=0, max=1) uniforme rnorm(n, mean=0, sd=1) Gaussiana o normal rexp(n, rate=1) exponencial rgamma(n, shape, scale=1) gamma rweibull(n, shape, scale=1) Weibull rcauchy(n, location=0, scale=1) Cauchy rbeta(n, shape1, shape2) Beta rt(n, df) Student (t) rf(n, df1, df2) FisherSnedecor (F) rchisq(n, df) Pearson
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

Vamos hacer un histograma y encima graquemos la densidad que gener o la muestra, para esto vamos a utilizar la funci on curve que es una forma alternativa de crear gr acas x <- rnorm(1000) hist(x,freq=F) curve(dnorm(x),add=T)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Matrices y operaciones de matrices Listas, Data frames e indexaci on Selecci on condicional y ordenamientos Control de ujo Leer y escribir datos desde un archivo de texto Funciones

De esta manera podemos ver muchos resultados te oricos como por ejemplo, que una distribuci on t cuando n es una N (0, 1). x= seq(-10,10,0.1) plot(dt(x,1),type="l") lines(dt(x,20),col="red") lines(dt(x,50),col="green") lines(dnorm(x),col="blue") O que si tenemos n observaciones provenientes de una distribuci on N (, ), ), un intervalo de conanza al 95% de conanza es entonces x N (, n obtenido como x +
n 0.025

x +

n 0.975

sigma = 12 xbar = mean( rnorm(100,5,sigma) ) n = 5 sem = sigma/sqrt(n) sem xbar + sem * qnorm(0.025) xbar + sem * qnorm(0.975)
Miguel Angel Chong R.miguel@sigma.iimas.unam.mx Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Resumen estad stico de una muestra Gracos: Histogramas, Distribuci on acumulada emp rica, Q-Q plot

Es f acil calcular resumenes estad sticos con R. Por ejemplo calculemos la media, desviaci on est andar, varianza, y la mediana x = rpois(200,8) mean(x) sd(x) var(x) median(x) Los cuantiles pueden ser obtenidos as quantile(x) o pvec <- seq(0,1,0.1) quantile(x,pvec)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Resumen estad stico de una muestra Gracos: Histogramas, Distribuci on acumulada emp rica, Q-Q plot

Un buen resumen estad stico es obtenido bajo la funci on summary normales= rnorm(100, 12, sqrt(4) ) summary(normales) Tambi en nos sirve para un conjunto de datos como por ejemplo el data.frame iris summary(iris)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Resumen estad stico de una muestra Gracos: Histogramas, Distribuci on acumulada emp rica, Q-Q plot

Funci on de distribuci on emp rica acumulativa


La funci on de distribuci on emp rica acumulada se dene como la fracci on de los datos menores o iguales a x . Es decir, si x es la observaci on k- esima m as peque na, y y es la observaci on (k+1) m as peque na entonces la proporci on k/n se asigna a el intervalo [x,y) La funci on de distribuci on acumulada emp rica se puede gracar de la siguiente manera x= rnorm(100,23,8) n <- length(x) plot(sort(x),(1:n)/n,type="s",ylim=c(0,1)) El objetivo de calcular la funci on emp rica de distribuci on acumulada es ver si los datos provienes de una distribuci on normal.

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Resumen estad stico de una muestra Gracos: Histogramas, Distribuci on acumulada emp rica, Q-Q plot

qqnorm
Hacer una gr aca cuantil cuantil en general no es sencillo. Afortunadamente, hay una funci on hacerlo. Por ejemplo para obtener la fuci on cuantil- cuantil de una muestra que suponemos que es normal usamos el comando qqnorm. qqnorm(x) Por otro lado, la funci on qqplot produce una graca cuantil-cuantil para dos conjuntos de datos. y <- rt(200, df = 5) qqnorm(y) qqline(y, col ="red") qqplot(y, rt(300, df = 5))

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

Introducci on Familiarizaci on con el lenguaje Conceptos fundamentales de R Estad sticas descriptivas y gr acas

Resumen estad stico de una muestra Gracos: Histogramas, Distribuci on acumulada emp rica, Q-Q plot

La graca de caja y brazos o boxplot para un vector la podemos calcular como sigue boxplot(x) Para datos agrupados podemos hacer los mismos gr acos que en el caso unidimensional, como por ejemplo histogramas de cada variable o tambi en un boxplot para cada variable boxplot(iris)

Miguel Angel Chong R.miguel@sigma.iimas.unam.mx

Curso de R

You might also like