UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERÍA EN ESTADÍSTICA

Autores: Nicole Bauz, Natali Caizaguano, Anahí Chamba, Gandy Churta

Curso: S3-P2

Asignatura: Programación

Docente: Ing. Francisco Valverde PhD

TALLER-APE 10: TIDYVERSE

ÍNDICE:

Utilizando la base de datos interna mtcars, resolver los siguientes enunciados

Descargamos el paquete dplyr para posteriormente cargar su libreria y luego visualizamos la base mtcars.

install.packages(dplyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
View(mtcars)

EJERCICIO 1

1. Seleccionamos las 3 primeras columnas del dataset mtcars y mostramos la cabecera

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
head(select(mtcars, 1:3))
##                    mpg cyl disp
## Mazda RX4         21.0   6  160
## Mazda RX4 Wag     21.0   6  160
## Datsun 710        22.8   4  108
## Hornet 4 Drive    21.4   6  258
## Hornet Sportabout 18.7   8  360
## Valiant           18.1   6  225

EJERCICIO 2

2. Utiliza la ayuda ?select_helpers para que observes el resultado

?select_helpers
## starting httpd help server ... done

?select_helpers: Permite observar la funcion select con mas detalles en Help, en pocas palabras, nos muestra todas las herramientas de la función select.

EJERCICIO 3

3. Seleccionar las columnas que empiezan por d

head(select(mtcars, starts_with("d")))
##                   disp drat
## Mazda RX4          160 3.90
## Mazda RX4 Wag      160 3.90
## Datsun 710         108 3.85
## Hornet 4 Drive     258 3.08
## Hornet Sportabout  360 3.15
## Valiant            225 2.76

EJERCICIO 4

4. Seleccionar las columnas que terminan por p

head(select(mtcars, ends_with("p")))
##                   disp  hp
## Mazda RX4          160 110
## Mazda RX4 Wag      160 110
## Datsun 710         108  93
## Hornet 4 Drive     258 110
## Hornet Sportabout  360 175
## Valiant            225 105

EJERCICIO 5

5. head(select( mtcars, -drat, -am )) (Explica que resultado obtienes ?)

head(select(mtcars, -drat, -am))
##                    mpg cyl disp  hp    wt  qsec vs gear carb
## Mazda RX4         21.0   6  160 110 2.620 16.46  0    4    4
## Mazda RX4 Wag     21.0   6  160 110 2.875 17.02  0    4    4
## Datsun 710        22.8   4  108  93 2.320 18.61  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.215 19.44  1    3    1
## Hornet Sportabout 18.7   8  360 175 3.440 17.02  0    3    2
## Valiant           18.1   6  225 105 3.460 20.22  1    3    1

NO SE SELECCIONAN LAS COLUMNAS -drat Y -am por que las descartan con el (-)

EJERCICIO 6

6. head(select( mtcars, contains( “a” ) )) (Explica que resultado obtienes ?)

head(select( mtcars, contains( "a" ) ))
##                   drat am gear carb
## Mazda RX4         3.90  1    4    4
## Mazda RX4 Wag     3.90  1    4    4
## Datsun 710        3.85  1    4    1
## Hornet 4 Drive    3.08  0    3    1
## Hornet Sportabout 3.15  0    3    2
## Valiant           2.76  0    3    1

contains, selecciona las columnas que contengan el caracter “a” y nos las muestra. Nos muestra las columnas que en su nombre contengan una letra “a”

EJERCICIO 7

Head(filter( mtcars, mpg > 20, gear == 4)) (Explica que resultado obtienes ?)

head(filter( mtcars, mpg > 20, gear == 4))

Muestra las columnas de MPG mayores a 20

EJERCICIO 8

Seleccionar los sujetos con tipo de transmisión (am) 1 que, además, tienen 6 cilindros o menos

mtcars<-data.frame(mtcars)

ejer8<-mtcars[mtcars$am==1&mtcars$cyl<=6,]
ejer8

Muestra solo las columnas de AM iguales a 1

EJERCICIO 9

Seleccionar los sujetos que bien consumen menos de 21 mpg o bien tienen menos de 3 carburantes (carb) y menos de 4 engranajes (gear)

ejer9<-mtcars[(mtcars$mpg==21 |mtcars$carb==3) & mtcars$gear<4,]
ejer9

Mostró solamente las columnas de carb iguales a 3 y gear menores que 4.

EJERCICIO 10

Ordena por cilindrada (cyl) y por desplazamiento (disp)

datos10<-mtcars[with(mtcars, order(mtcars$cyl, mtcars$disp)), ] 
datos10

Mostró los datos ordenadamente de cyl y disp.

EJERCICIO 11

Crea una nueva columna que indique los kilogramos que pesa el coche, sabiendo que 1 libra = 0.45 kg. La variable wt indica el peso en libras.

mtcars$kg<-mtcars$wt*0.45
mtcars

En esta parte nos mostró la multiplicacion de la columna WT multiplicada por 0.45

EJERCICIO 12

La función summarise() agrupa los valores en una tabla de acuerdo a la función que indiquemos. Calcula la media de disp usando la función summarise:

datos12<-mtcars%>% 
  summarise(mean=mean(disp))
datos12

En esta parte nos refleja la media de la columna de disp

EJERCICIO 13

summarise(group_by(mtcars, cyl), max = max(disp)) (Explica que resultado obtienes ?)

summarise(group_by(mtcars,cyl),max=max(disp))

En esta parte agrupo a las variables de cyl, ordenamente, conjuntamente selecciono las cantidades mas altas de cada categoria.

EJERICIO 14

Explica que resultado obtienes ?

mtcars %>% select( mpg:disp )%>%  head 
##                    mpg cyl disp
## Mazda RX4         21.0   6  160
## Mazda RX4 Wag     21.0   6  160
## Datsun 710        22.8   4  108
## Hornet 4 Drive    21.4   6  258
## Hornet Sportabout 18.7   8  360
## Valiant           18.1   6  225

EXPLICACION:“Al ejecutar el codigo se selecciona la columna del nombre mpg hasta la columna disp usando pipes”.

EJERICIO 15

Explica que resultado obtienes ?

head(select(select(mtcars, contains("a")), -drat, -am))
##                   gear carb
## Mazda RX4            4    4
## Mazda RX4 Wag        4    4
## Datsun 710           4    1
## Hornet 4 Drive       3    1
## Hornet Sportabout    3    2
## Valiant              3    1

EXPLICACION:“Al ejecutar el codigo se selecciona las columnas de la base de datos mtcars que tenga la letra”a”con la excepcion de las columnas “drat” y “am”“.

EJERCICIO 16

Utilizando pipes ejecuta el ejercicio 15

mtcars %>% select(contains("a"), -drat, -am) %>% head
##                   gear carb
## Mazda RX4            4    4
## Mazda RX4 Wag        4    4
## Datsun 710           4    1
## Hornet 4 Drive       3    1
## Hornet Sportabout    3    2
## Valiant              3    1

EJERCICIO 17

Explica que resultado obtienes ?

mtcars_filtered = filter(mtcars, wt > 1.5)
mtcars_grouped = group_by(mtcars_filtered, cyl)
summarise(mtcars_grouped, mn = mean(mpg), sd = sd(mpg))
## # A tibble: 3 × 3
##     cyl    mn    sd
##   <dbl> <dbl> <dbl>
## 1     4  26.7  4.51
## 2     6  19.7  1.45
## 3     8  15.1  2.56

EXPLICACION:“Al ejecutar el codigo se realiza una agrupacion de los cilindrages en donde de cada una se saca la mediay la desviacion estandar”.

EJERCICIO 18

Utilizando pipes ejecuta el ejercicio 17

mtcars %>% filter(,wt > 1.5) %>%
  group_by(cyl) %>%
  summarise(mn=mean(mpg),sd=sd(mpg)) %>% head
## # A tibble: 3 × 3
##     cyl    mn    sd
##   <dbl> <dbl> <dbl>
## 1     4  26.7  4.51
## 2     6  19.7  1.45
## 3     8  15.1  2.56

EJERCICIO 19

Es obligatorio utilizar las funciones del paquete dplyr y recomendable utilizar pipes %>% para los siguientes ejercicios.

library("dplyr")

EJERCICIO 20

Descarga el fichero de datos vuelos.csv situado enhttp://gauss.inf.um.es/datos/; ## en local o localiza la url donde se encuentra

web1 <- "http://gauss.inf.um.es/datos/vuelos.csv"

EJERCICIO 21

Descarga el archivo y Guarda los datos en una variable llamada vuelos

vuelos <- read.csv("C:/Users/jorda/Downloads/vuelos.csv", header = T, sep = ",", dec = ".")
vuelos

EJERCICIO 22

Selecciona los vuelos con destino SFO u OAK utilizando las funciones del paquete dplyr. ¿Con cuantos vuelos nos quedamos?

vuelos_destino1 <- filter(vuelos, dest=="SFO") 
head(vuelos_destino1)

EJERCICIO 23

Selecciona los vuelos que se han retrasado más de una hora. ¿Cuál es el destino que más se retrasa en proporción al número de vuelos?

vuelos_retrasos <- select(vuelos, arr_delay)
head(vuelos_retrasos)

vuelos_retrasos1 <- filter(vuelos_retrasos, arr_delay >1 )
head(vuelos_retrasos1)

EJERCICIO 24

Encuentra 4 maneras diferentes de utilizar la función select para seleccionar las variables relacionadas con los retrasos (delay)

head(select(vuelos, dep_delay))

head(select(vuelos, arr_delay, everything()))

var <- c("dep_delay", "arr_delay")
head( select(vuelos, one_of(var)))

head( select(vuelos, matches(".d.")))

EJERCICIO 25

Agrupa los vuelos por fecha y calcula: media, mediana y cuartil 75 de los retrasos en los vuelos por hora

head(select(vuelos, dep_delay))

EJERCICIO 26

Utilizando pipes calcula la media de retraso en los vuelos por dí­a y hora, la cantidad de vuelos por dí­a y hora y luego muestra solo los casos para los cuales haya más de 10

mean(vuelos$dep_delay, na.rm = T)

mean(vuelos$arr_delay, na.rm = T) 

head(filter(vuelos, dep_delay>10,arr_delay>10))

EJERCICIO 27

Importar la base de datos realizada en MYSQL a R (Consultarlo como hacerlo)

library("RODBC")
conexion <- odbcConnect("vuelos.prueba",uid = "root",pwd = "gndy")
vuelomysql <- sqlQuery(conexion,"SELECT * FROM vuelos1")
head(vuelomysql)