Maestría en EconomíaTaller: 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
2
Sesión 7
• Contenido
• Repaso sesión 6
• Otros objetos en R
• Manipulación de objetos
• Operadores lógicos
• Gráficos básicos en R3
Repaso sesión 6
Como construir matrices en R
Funciones para manipulación de matrices ( $, [ ] )
Operaciones con matrices (det, solve, t, eigen)
4
Tarea
5
Tarea -2 2 1
2 1 2
2 -2 -4
1 3 2
-4 -1 2
-1 1 1
6
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
x + 2y + 3z = 24
4x + 5y + 6z = 32
7x + 8y - 9z = 41
7
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?
8
Contenido
• Repaso sesión
• Otros objetos en R
• Manipulación de objetos
• Operadores lógicos
• Gráficos básicos en R
9
Otros objetos en R - ListasListas
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)
10
Otros objetos en R - FactoresFactores
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)
11
Otros objetos en R - dataframesDataframes
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)12
¿preguntas?
13
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
14
Contenido
• Repaso sesión 2
• Otros objetos en R
• Manipulación de objetos
• Operadores lógicos
• Gráficos básicos en R
15
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
16
Manipulación de objetosAhora 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)]
17
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 ]
18
Manipulación de objetosdata(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?
19
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
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
Contenido
• Repaso sesión 2
• Otros objetos en R
• Manipulación de objetos
• Operadores lógicos
• Gráficos básicos en R
20
Operadores lógicos
21
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úmerosnúmeros >= 8números <= 5
números[números == 5]números == 5
números[números !=6 ]números != 6
? mostrarlos
Operador Descripción
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
== exactamente igual que
!= no igual a
x | y x O y
x & y x Y y
isTRUE(x) prueba si x is verdadero (TRUE)
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
22
Contenido
• Repaso sesión 2
• Otros objetos en R
• Manipulación de objetos
• Operadores lógicos
• Gráficos básicos en R
23
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
24
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 / Ycol.axis, col.lab, col.main, col.sub: colores para los elementos individuales
del gráfico25
Opciones para pch
26
Algunos colores disponibles en Rcolors( ) # muestra todos los colores disponibles en R
# Colores básicos en R
27
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")
28
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")
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", xlim=c(55,100), ylim=c(1.55,2))
29
30
60 70 80 90 100
1.6
1.8
2.0
Diagrama de dispersión peso vs altura
muestra número 1peso
altu
ra
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
31
¿preguntas?
http://nbecerrauamx.wordpress.com/
32
Top Related