Profesor: Noé Becerra Rodríguez 26 de septiembre 2013 Maestría en Economía Taller: Introducción al lenguaje R Sesión 7: Otros objetos en R Profesor: Noé Becerra Rodríguez 26 de septiembre 2013
Sesión 7 Repaso sesión 6 Otros objetos en R Manipulación de objetos Operadores lógicos Gráficos básicos en R
Sesión 7 Contenido Repaso sesión 6 Otros objetos en R Manipulación de objetos Operadores lógicos Gráficos básicos en R
Repaso sesión 6 Como construir matrices en R Funciones para manipulación de matrices ( $, [ ] ) Operaciones con matrices (det, solve, t, eigen)
Tarea
Tarea -2 2 1 2 1 2 2 -2 -4 1 3 2 -4 -1 2 -1 1 1 matriz_A = matrix(c(-2,2,1,2,1,2,2,-2,-4), nrow=3) det (matriz_A) solve(matriz_A) objeto1 = eigen(matriz_A); objeto1 valores = objeto1$val; valores vectores = objeto1$vec; vectores matriz_B = matrix(c(1,3,2,-4,-1,2,-1,1,1), nrow=3, byrow=TRUE) det(matriz_B) solve(matriz_B) objeto2 = eigen(matriz_B); objeto2 valores = objeto2$val; valores vectores = objeto2$vec; vectores
Tarea x + 2y + 3z = 24 4x + 5y + 6z = 32 7x + 8y + 9z = 41 x1=scan() matriz_C=matrix(x1,nrow=3) det(matriz_C) solve(matriz_C) Error in solve.default(matriz_C) : system is computationally singular: reciprocal condition number = 2.20304e-18 x2=scan() matriz_D=matrix(x2, nrow=3, byrow=TRUE) y2=c(24,32,41) det(matriz_D) invmatriz_D=solve(matriz_D) solu1=invmatriz_D%*%y2; solu1 solu2=solve(matriz_D,y2); solu2
¿preguntas?
Contenido Repaso sesión Otros objetos en R Manipulación de objetos Operadores lógicos Gráficos básicos en R
Otros objetos en R - Listas Una lista en R es una colección de objetos que pueden ser de distinta clase. Para vectores y matrices sólo es posible juntar elementos de la misma clase rm(list=ls()) a = c("a","b","c","d") b = c(1,2,3,4,4,3,2,1) c = c(TRUE,TRUE,FALSE) lista.objetos = list (a,b,c) class(lista.objetos) lista.objetos lapply(lista.objetos, length) lapply(lista.objetos, class) lapply(lista.objetos, mean)
Otros objetos en R - Factores Un factor en R es una variable categórica. Por ejemplo nivel de ingreso: bajo, medio, alto, muy-alto. ingreso = c(1,4,2,3,2,3,4,3,2,2,3,1,2,2,2) fingreso = factor (ingreso, levels=1:4, labels= c("bajo","medio","alto","muy-alto")) género = c(2,1,1,2,2,2,1,2,1,1,2,2,1,1,2) fgénero = factor(género, levels=1:2, labels = c("mujer", "hombre")) class(fingreso); class(fgénero) as.numeric(fingreso); as.numeric(fgénero) levels (fingreso); levels (fgénero)
Otros objetos en R - dataframes Un objeto dataframe es una base de datos que puede contener elementos de distinta clase. Es una lista de vectores de la misma longitud y en la cual los datos en el mismo renglón provienen de la misma observación peso = c(60, 72, 57, 90, 95, 72, 65, 76, 61, 92, 98, 77, 66, 75, 59) altura = c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91, 1.77, 1.83, 1.69, 1.95, 1.78, 1.88,1.73, 1.79, 1.61) datos = data.frame (peso, altura, fgénero, fingreso) datos class(datos) lapply(datos,summary) table(fingreso) table(datos$fingreso)
¿preguntas?
Tarea factores y dataframes Generar dos vectores númericos y un factor para construir un dataframe de 10 elementos Calcule la media y la desviación estándar de las variables del dataframe Aplique la función summary( ) al dataframe
Contenido Repaso sesión 2 Otros objetos en R Manipulación de objetos Operadores lógicos Gráficos básicos en R
Manipulación de objetos [ siempre regresa un objeto de la misma clase que el original y puede ser usado para extraer más de un elemento [[ se usa para extraer elementos de una lista o un dataframe. Únicamente puede ser usado para extraer un solo elemento y la clase de objeto que regresa no necesariamente será una lista o un dataframe $ se emplea para extraer elementos de una lista o un dataframe por nombre del elemento
Manipulación de objetos Ahora algunos ejemplos con [ y $ una.lista = list(núm=1:6, mediana = 7.4, lógico = TRUE) una.lista una.lista[1] una.lista[2] núm; ls ( ) una.lista$núm una.lista$mediana una.lista$lógico una.lista[c(1, 3)]
Manipulación de objetos lista2 = list(a = list(10, 12, 14), b = c(3.14, 2.81)) lista2[[c(1, 3)]] lista2[[c(2, 1)]] # Quitando los missing values (NAs) vectorA = c(1:8, NA, 14, NA, 18:21, NA, NA, NA); vectorA faltantes = is.na(vectorA) vectorA[ !faltantes ]
Manipulación de objetos data(airquality); names(airquality) airquality[1:6, ] completos = complete.cases(airquality) airquality[completos, ][1:6, ] ¿Cómo se calcula el número de casos completos en la base airquality? Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 7 23 299 8.6 65 5 7 8 19 99 13.8 59 5 8
Contenido Repaso sesión 2 Otros objetos en R Manipulación de objetos Operadores lógicos Gráficos básicos en R
Operadores lógicos ? mostrarlos números = c(1:10) números números[números>8 | números<5] números[números>8 & números<5] números[números<8 & números>5] números >= 8 números <= 5 números[números == 5] números == 5 números[números !=6 ] números != 6 ? mostrarlos
Tarea - operadores lógicos Con la información que tiene en la base “airquality” obtener lo siguiente: a) Determinar los NAs (missing values) en la base y por variable b) Encontrar los valores de “Ozone” mayores que 100 c) Hallar medidas de “Temp” menores de 79 e) Encontrar cuantos casos completos se tienen en la base
Contenido Repaso sesión 2 Otros objetos en R Manipulación de objetos Operadores lógicos Gráficos básicos en R
Gráficos en R - plot( ) Pueden ser usadas para diagramas de dispersión de dos dimensiones (X, Y) Toma dos vectores como datos de entrada x = c(2,4,6,8,10) y = c(1.5,3,7,8,15) plot(y ~ x) plot(x, y) # es equivalente al anterior
Argumentos básicos - plot( ) col = “ ”: color del gráfico pch: tipo de punto (círculo, cuadrado, círculo relleno, etc.) cex: tamaño de la figura (pch) usada en el gráfico type = “ ”: tipo de elemento gráfico (puntos, líneas, etc.) main = “ ”: título del gráfico sub = “ ”: subtítulo del gráfico xlab, ylab = “ ”: etiquetas de los ejes X / Y xlim, ylim = c( mínimo, máximo): rango de los ejes X / Y col.axis, col.lab, col.main, col.sub: colores para los elementos individuales del gráfico
Opciones para pch
Algunos colores disponibles en R colors( ) # muestra todos los colores disponibles en R # Colores básicos en R
Ejemplo de gráficos - plot( ) names(datos) head(datos) ls.str(datos) La base “datos” es la que se construyó en la dispositiva 15 y 16. plot(peso, altura) plot(datos$peso, datos$altura) plot(datos$peso, datos$altura, col="blue", pch=19) plot(datos$peso, datos$altura, col="blue", pch=19, type="p", main="Diagrama de dispersión peso vs altura")
Ejemplos - plot( ) plot(datos$peso, datos$altura, col=datos$fgénero, pch=19, type="p", main="Diagrama de dispersión peso vs altura", sub = "muestra número 1", xlab="peso", ylab="altura") sub = "muestra número 1", xlab="peso", ylab="altura", xlim=c(55,100), ylim=c(1.55,2))
Tarea gráficos - plot( ) data(airquality) help(airquality) names (airquality) Construir un gráfico de dispersión sobre dos variables numéricas de la base airquality aumentando los argumentos de dos en dos. Use diferentes colores y formas (pch) de los elementos del gráfico a los usados en el ejemplo anterior
¿preguntas? berono@hotmail.com http://nbecerrauamx.wordpress.com/