simplificando r - aprende r en minutos

28
Ernesto De Frías - [email protected] 2015

Upload: edupuntocom-ernesto-de-frias

Post on 30-Jul-2015

96 views

Category:

Engineering


7 download

TRANSCRIPT

Ernesto De Frías - [email protected] 2015

Ernesto De Frías - [email protected] 2015

R es un software libre, abierto y gratuito especializado en estadísticas que permite programación.

Para interactuar con R lo hacemos mediante la CONSOLA (console).

La consola interpreta el lenguaje de programación R orientado a OBJETOS.

Generalidades

Ernesto De Frías - [email protected] 2015

En R, un objeto es el resultado de una operación. Ejemplo: a=2+2 aquí

"a" es un objeto alojado en la memoria de R

En R, la operación más simple sería pedir el valor de un objeto. Ejemplo: > a ... el sistema devuelve ... [1] 4

Un objeto puede ser creado con el operador “asignar” el cual se visualiza como una flecha así...“<-”. También puedes usar el signo de igual "=“.

Orientado a objetos

Ernesto De Frías - [email protected] 2015

ObjetosObjetos

Vectores

a <-

c(1,2,5.3,6,-2,4)

# vector numérico

b <-c("uno","dos","tres")

# vector de caracteres

c <-c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE)

# vector lógico

Matrices

Arreglo de filas y columnas. En las matrices todas las columnas deben tener el mismo tipo de datos y la misma longitud.

Arreglos

Un arreglo de 2 dimensiones es lo mismo que una matriz. Los arreglos pueden tener 3 dimensiones.

Data Frames

Son similares a las matrices pero contienen datos de diferentes tipos (numéricos, caracteres, etc...)

Listas

Están compuestas por una colección ordenada de objetos.

Son combinaciones de elementos.Se pueden crear utilizando:c(), seq() o rep()

Ernesto De Frías - [email protected] 2015

En programación es muy importante que seas cuidados@ al digitar los códigos.

En R, debes tener cuidado con las mayúsculas y minúsculas. Ejemplo: "g" es diferente a "G“.

Cualquier texto posterior a “# ” es ignorado por la consola de R. # se utiliza ara realizar comentarios.

Consideraciones

Ernesto De Frías - [email protected] 2015

Las librerías o "paquetes" amplían la "potencia" de R.

Existen paquetes para diferentes funcionalidades.

Asegúrate de que exista algún paquete (y que esté cargado) para la operación que necesitas.

Para poder utilizar los paquetes debes cargarlos cada vez que inicialices a R.

Paquetes de R

Para instalar los paquetes, necesitas conexión WEB.

Igual que R, los paquetes se instalan una sola vez.

Ernesto De Frías - [email protected] 2015

Existen muchas comunidades de programadores desarrollando paquetes de R. Existen paquetes para casi todas las necesidades.

Los paquetes deben ser cargados a la memoria en cada sesión.

Carga solo los paquetes que necesites. Así tu sistema será más eficiente en el manejo de la memoria.

Paquetes de R

Ernesto De Frías - [email protected] 2015

Las funciones son ORDENES que permiten realizar una tarea.

Generalmente todas las funciones pertenecen a algún paquete. Excepto las básicas.

Las funciones vienen acompañadas de paréntesis. Ejemplo: length() o date()

En general, todas las funciones necesitan datos dentro del paréntesis para poder funcionar. Ejemplo: length(cadenadt)

Funciones

Las funciones más básicas como la fecha, no necesitan datos dentro de los paréntesis.

Ernesto De Frías - [email protected] 2015

cadena_lugar<-c("AEROP. ARROYO BARRIL","AEROP. JOAQUIN BALAGUER","AEROPUERTO CATEY","AEROPUERTO DE BARAHONA","AEROPUERTO LA ROMANA") # CREA EL OBJETO "CADENA_LUGAR" CON EL TEXTO ENTRE COMILLAS Y SEPARADOS POR COMA Y ESCRITOS DIRECTAMENTE POR TECLADO

cadenatempmax<- c(32.3,32.2,32,32.4,33.2) #CREA EL OBJETO "CADENATEMPMAX" CON LOS DATOS NUMERICOS SUMINISTRADOS, SEPARADOS POR COMA Y ESCRITOS DIRECTAMENTE POR TECLADO

cadenatempmax #MUESTRA EL CONTENIDO DEL OBJETO "CADENATEMPMAX"

EjercicioCalcular los promedios (media) de cada columna, los valores mínimos y los máximos

Cargando datos vía teclado

Ernesto De Frías - [email protected] 2015

cadenatempmin<- c(23.2,25,23.5,27,22) #CREA EL OBJETO "CADENATEMPMIN" CON LOS DATOS NUMERICOS SUMINISTRADOS, SEPARADOS POR COMA Y ESCRITOS DIRECTAMENTE POR TECLADO

cadenatempmin #MUESTRA EL CONTENIDO DEL OBJETO "CADENATEMPMIN"

cadenalluvia<- c(NA,NA,NA,4.8,NA) #CREA EL OBJETO "CADENALLUVIA" CON LOS DATOS NUMERICOS SUMINISTRADOS, SEPARADOS POR COMA Y ESCRITOS DIRECTAMENTE POR TECLADO

cadenalluvia #MUESTRA EL CONTENIDO DEL OBJETO "CADENALLUVIA"

Ernesto De Frías - [email protected] 2015

tabladt<-data.frame(cadena_lugar,cadenatempmax,cadenatempmin,cadenalluvia) #CREA UN DATA FRAME (TABLA) "TABLADT" CON LAS DIFERENTES CADENAS CREADAS Y CONTENIDOS DIFERENTES (NUMEROS Y TEXTO) POR ESO USAMOS LA FUNCION DATA.FRAME

tabladt #MUESTRA EL CONTENIDO DEL OBJETO "TABLADT"

Ernesto De Frías - [email protected] 2015

Cálculos hechos en EXCEL y R

Ernesto De Frías - [email protected] 2015

cadena_lugar<-c("AEROP. ARROYO BARRIL","AEROP. JOAQUIN BALAGUER","AEROPUERTO CATEY","AEROPUERTO DE BARAHONA","AEROPUERTO LA ROMANA") # CREA EL OBJETO "CADENA_LUGAR“

cadena_lugar #MUESTRA EL CONTENIDO DEL OBJETO "CADENA_LUGAR“

cadenatempmax<- c(32.3,32.2,32,32.4,33.2)cadenatempmin<- c(23.2,25,23.5,27,22)cadenalluvia<- c(NA,NA,NA,4.8,NA) #CREA OBJETOS "CADENATEMPMAX“ "CADENATEMPMIN“ “CADENALLUVIA”

tabladt<-data.frame(cadena_lugar,cadenatempmax,cadenatempmin,cadenalluvia) #CREA UN DATA FRAME (TABLA) "TABLADT" CON LAS DIFERENTES CADENAS

tabladt #MUESTRA EL CONTENIDO DEL OBJETO "TABLADT"

Resumen de las sentencias

Ernesto De Frías - [email protected] 2015

max(cadenatempmax, na.rm=TRUE) #CALCULA EL VALOR MAXIMO DEL OBJETO "CADENATEMPMAX“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

min(cadenatempmin, na.rm=TRUE) #CALCULA EL VALOR MINIMO DEL OBJETO "CADENATEMPMIN“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

mean(cadenatempmax, na.rm=TRUE) #CALCULA EL VALOR PROMEDIO DEL OBJETO "CADENATEMPMAX“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

mean(cadenatempmin, na.rm=TRUE) #CALCULA EL VALOR PROMEDIO DEL OBJETO "CADENATEMPMIN“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

max(cadenalluvia, na.rm=TRUE) #CALCULA EL VALOR MAXIMO DEL OBJETO "CADENALLUVIA“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

min(cadenalluvia, na.rm=TRUE) #CALCULA EL VALOR MINIMO DEL OBJETO "CADENALLUVIA“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

mean(cadenalluvia, na.rm=TRUE) #CALCULA EL VALOR PROMEDIO DEL OBJETO "CADENALLUVIA“ y REMUEVE (EXCLUYE) LOS VALORES "NA"

Resumen de las sentencias

Ernesto De Frías - [email protected] 2015

Excel puede guardar (exportar) los datos de cualquier TABLA al formato CSV. Se trata de un archivo estandarizado que contiene los datos separados por coma.

Para R, es muy sencillo leer datos desde un archivo con los datos separados por coma (CSV). No importa si el contenido tiene 5 líneas de registros o 50 mil.

En nuestro caso, colocamos el archivo ONAMET.CSV en la raíz del disco D y para ello usamos la función READ().

R también puede leer un archivo cualquiera desde la misma web. En este caso el archivo se llama DATOSENWEB.CSV Ejemplo: tabladatos<-read.csv("http://directo/r/datosenweb.csv")

# LECTURA AUTOMATICA DESDE ARCHIVO# R PUEDE LEER EL CONTENIDO DE UN ARCHIVO AUTOMATICAMENTE EVITANDONOS TENER QUE DIGITAR DATOS INMENSOS# VAMOS A LEER LOS DATOS DEL ARCHIVO DE EXCEL SIN TENER QUE DIGITARLOS

tabladt2<-read.csv("d:/onamet.csv", header=FALSE)# CREA EL OBJETO “TABLADT2“ CON LOS DATOS DE “ONAMET.CSV” E INDICA QUE NO EXISTE ENCABEZADO

Ejercicio Cargando datos vía un archivo externo

Ernesto De Frías - [email protected] 2015

tabladt2 # MUESTRA EL CONTENIDO DEL OBJETO “TABLADT2”

str(tabladt2)# MUESTRA LA ESTRUCTURA DEL OBJETO “TABLADT2”

OBSERVAMOS QUE EL OBJETO “TABLADT2” ES UN “DATA FRAME”. ES DECIR, UN TIPO DE MATRIZ CON DATOS DE TIPOS DIFERENTES.

Ernesto De Frías - [email protected] 2015

# EXTRAER SOLAMENTE LOS DATOS DE LA COLUMNA 2 (VECTOR 2- V2) O TEMPERATURA MAXIMA, DE LA MATRIZ “TABLADT2”

cadenatmax<- na.omit(tabladt2 [,2])

# EL NUMERO 2 ENTRE [] SIGNIFICA EXTRAER LA COLUMNA (VECTOR) 2 Y LO ASIGNA A LA “CADENADT2”# LA COMA QUE ANTECEDE AL 2 INDICA QUE LOS DATOS PERTENECEN A UN DATA FRAME# NA.OMIT REMUEVE LOS DATOS “NA”

# CALCULAR LA TEMPERATURA PROMEDIO DE LAS TEMPERATURAS MÁXIMAS EN LA COLUMNA 2

tempmaxprom<- mean(cadenatmax)

Ernesto De Frías - [email protected] 2015

Resumen de las sentenciastabladt2<-read.csv("d:/onamet.csv", header=FALSE) # CREA EL OBJETO “TABLADT2“ CON LOS DATOS DE “ONAMET.CSV”

tabladt2 # MUESTRA EL CONTENIDO DEL OBJETO “TABLADT2”

str(tabladt2) # MUESTRA LA ESTRUCTURA DEL OBJETO “TABLADT2”

cadenatmax<- na.omit(tabladt2 [,2]) # EXTRAE LOS DATOS DE LA COLUMNA 2 (VECTOR 2 - V2) Y CREA UNA CADENA

tempmaxprom<- mean(cadenatmax) # CALCULA LA TEMPERATURA PROMEDIO DE LAS TEMPERATURAS MÁXIMAS

tempmaxprom # MUESTRA LA TEMPERATURA PROMEDIO DE LAS TEMPERATURAS MÁXIMAS

Ernesto De Frías - [email protected] 2015

Ayuda de R

help.start()help.search(elemento a buscar)

help(“función”)?”comando”

Presenta un HTML con la ayuda de RBúsqueda de un elemento Búsqueda de una función (comillas son importantes)

Búsqueda de un comando (comillas son importantes)

Ernesto De Frías - [email protected] 2015

•Ver el directorio de trabajo: getwd()

•Cambiar el directorio de trabajo: setwd("path")

•Ver los objetos y variables del espacio de trabajo: ls() u objects()

•Borrar un objeto del espacio de trabajo: rm(x)

•Crear un vector: x=c(1,2,4,8,16)

y=c(1:10)

z=c(rnorm(n))

•Operaciones con vectores: x=c(x)+n # suma 'n' a cada elemento

z=c(x,y) # combina 2 vectores creando uno lineal

z=cbind(x,y) # combina 2 vectores creando una matriz de 2 columnas

z=rbind(x,y) # combina 2 vectores creando una matriz de 2 filas

replace(x,x==0,NA) # sustituye los ceros por NA

Sentencias útiles

Ernesto De Frías - [email protected] 2015

Sentencias útiles•Operaciones con matrices:

mat[4,2] # muestra la 4ª fila y la 2ª columna

mat[3,] # muestra la 3ª fila

mat[,2] # muestra la 2ª columna

mat[,-3] # borra la 3ª columna

mat[-2,] # borra la 2ª fila

mat[1:3,3:5] # mestra las filas 1 a 3 y las columnas 3 a 5

•Crear un DATAFRAME a partir de vectores (cada vector una columna del frame):

data.fr=data.frame(x1,x2,x3 …)

•Conocer si un objeto es un DATAFRAME :

is.data.frame(mat)

•Convertir un DATAFRAME en matriz:

as.matrix(data.frame)

Ernesto De Frías - [email protected] 2015

•Obtener los nombres de las columnas de un DATAFRAME:

names(data.fr)

•Obtener los nombres de las filas de un DATAFRAME :

row.names(data.fr)

•Obtener el número de filas de un DATAFRAME :

nrow(data.fr)

•Ver las primeras filas del DATAFRAME :

head(data.fr, n=10) # las 10 primeras líneas

•Crear vectores con el nombre de cada columna del DATAFRAME (y sus datos)

attach(data.fr)

detach(data.fr) # borrar los vectores

•Filtrar un DATAFRAME para obtener un subconjunto de datos y guardarlo en otro frame:

subset.frame<-subset(data.fr,colA>=5 & !is.na(colB) | ColC='V')

subset.frame<-subset(data.fr,complete.cases(data.fr)) # Obtener únicamente las filas

con datos en todas sus columnas

Sentencias útiles

Ernesto De Frías - [email protected] 2015

Sentencias útilesdatosnuevos <- na.omit(mis_datos)Crea objeto DATOSNUEVOS desde MIS_DATOS excluyendo los “NA”.

is.na(x)Devuelve TRUE si los datos de X son “NA”

na.rm=TRUERemueve los NA

## Uniendo los DATAFRAMEs con mergeAB <- merge(A, B) # une A con BABC <- merge(AB, C) # a la unión de A y B le agrega CABCD <- merge(ABC, D) # a la unión de A, B y C le agrega DABCD # resultado final

Ernesto De Frías - [email protected] 2015

Sentencias útiles

length(v)min(v)max(v)sum(v)prod(v)mean(v)median(v)var(v)sd(v)cor(v,w)sort(v)

Largo del vector vMínimoMáximoSuma de todos los elementos de vProducto de los elementos de vMediaMedianaVarianzaDesviación estándarCorrelación entre dos vectoresOrganiza los elementos en forma ascendente

Ernesto De Frías - [email protected] 2015

Sentencias útiles# MUESTRA LAS VARIABLES DE MISDATOSnames(misdatos)

# MUESTRA LA ESTRUCTURA DE MISDATOSstr(misdatos)

# MUESTRA LOS NIVELES DEL FACTOR v1 EN MISDATOSlevels(misdatos$v1)

# MUETRA LAS DIENSIONES DE UN OBJETOdim(objeto)

# MUESTRA LA CLASE DE UN OBJETO (númerico, matriz, data frame,…)class(object)

# MUESTRA MISDATOSmisdatos

# MUESTRA LOS 10 PRIMEROS REGISTROS DE MISDATOShead(misdatos, n=10)

# MUESTRA LOS 5 ULTIMOS REGISTROS DE MISDATOStail(misdatos, n=5)

Ernesto De Frías - [email protected] 2015

Ventajas de usar RManipulación de datos. R te permite manipular (seleccionar, recodificar, recuperar) datos muy rápidamente.

Más fácil automatización. R utiliza un lenguaje de script en lugar de una interfaz gráfica de usuario. Esto te puede ahorrar un montón de tiempo, especialmente cuando tienes que volver a ejecutar el mismo análisis varias veces.

Cálculo rápido. Debido a la automatización proporcionada por R, muchas operaciones son mucho más rápidas para realizar en R de Excel.

Lee cualquier tipo de datos. R puede leer (importar) prácticamente cualquier tipo de datos desde archivos estandarizados (.txt, .csv, .dat, etc).

Es compatible con grandes conjuntos de datos. Excel tiene restricciones para el tamaño pueden tener sus datos y suele ser lento con grandes conjuntos de datos. R es compatible con los datos de mayor tamaño, y puede soportar grandes volúmenes de datos (ejemplo: 75 mil registros y más)

Es compatible con datos GEOESPACIALES. R es compatible con los datos geoespaciales y puede graficarlos.

Ernesto De Frías - [email protected] 2015

R Studio

R está desarrollando su interfaz gráfica para hacer más fácil la programación y cálculos estadísticos.

http://www.rstudio.com/

http://cran.r-project.org/

Ernesto De Frías - [email protected] 2015

FUENTESDisdier, Orville M. (año desconocido). Estadística Descriptiva e Inferencial utilizando R (Updated). Recuperado:25/jun/2015, de INSTITUTO DE ESTADISTICAS DE PUERTO RICO Sitio web: http://www.estadisticas.gobierno.pr/iepr/LinkClick.aspx?fileticket=p71ePCZXuYM%3D&tabid=100

Autor desconocido. (año desconocido). Quick R. Recuperado:25/jun/2015, de STATMETHODS Sitio web: http://www.statmethods.net/index.html

Autor desconocido. (año desconocido). Algunos comandos de R. Recuperado:28/jun/2015, de BIOINFOPERL Sitio web: http://bioinfoperl.blogspot.com/2010/06/algunos-comandos-de-r-utiles-en-ciencia.html

Autor desconocido. (año desconocido). Unir varios data.frames. Recuperado:28/jun/2015, de R ECONOMETRIA Sitio web: http://r-econ.blogspot.com/2012/07/unir-varios-dataframes-en-un-solo-paso.html