UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERIA EN ESTADÍSTICA

GRUPO 2

APLICANDO LOS CONOCIMIENTOS DE RSTUDIO

En este documento se presentan los ejercicios resuletos del taller #10 haciendo uso de rmarkdown

AUTORES

COLABORACIÓN

TALLER 10: EJERCICIOS

DATOS

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

EJERCICIO 1

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

a3<-head(select(mtcars, 1:3))
a3
##                    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

-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

-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

-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

-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
#EXPLICACION #Selecciona todas las columnas de mtcars, sin embargo, las columnas:
#drat y am quedan excluidas debido al signo menos.

EJERCICIO 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

EJERCICIO 7

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

head(filter( mtcars, mpg > 20, gear == 4))
##                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710    22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Merc 240D     24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230      22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Fiat 128      32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
#EXPLICACION: Selecciona las columnas de mtcars, que cumplan con de condicion de:
#cuando su mpg es mayor a 20 y el engranaje sea igual a 4. 

EJERCICIO 8

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

filter(mtcars, am == 1 & cyl <= 6)
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

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)

 filter(mtcars, mpg < 21 | carb < 3 & gear < 4)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

EJERCICIO 10

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

 arrange(mtcars, cyl, disp)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4

EJERCICIO 11

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

EJERCICIO 12

grupo_disp <- group_by(mtcars, disp)
grupo_disp
## # A tibble: 32 × 11
## # Groups:   disp [27]
##      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
##    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
##  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
##  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
##  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
##  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
##  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
##  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
##  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
##  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
## 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
## # ℹ 22 more rows
# Se calcula la media de disp usando la función summarise:
#summarise(grupo_disp, mean(disp))

#<< PASO 2 >>._ Tambien se puede hacer de la siguiente forma;
#mtcars%>%summarise(media_disp= mean(disp))%>%head

EJERCICIO 13

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

#<<PASO 1 >>.- Ejecutamos el código presentado
summarise(group_by(mtcars, cyl), max = max(disp)) 
## # A tibble: 3 × 2
##     cyl   max
##   <dbl> <dbl>
## 1     4  147.
## 2     6  258 
## 3     8  472
#<< PASO 2 >>._ Explicación: Agrupa los datos del cilindraje por su valor 
#               y obtiene el máximo de ese conjunto de datos.

EJERCICIO 14

#<< PASO 1 >>._ Ejecutamos el código presentado:

 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
#<< PASO 2 >>._ Explicación: Selecciona las columnas desde mpg hasta disp 
#               y nos muestra los 6 primeros valores de esta.

EJERCICIO 15

 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
#<< PASO 2 >>._ Explicación: Selecciona las columnas que contengan una
#               letra a en su encabezado a excepción de drat y am.

EJERCICIO 16

-Utilizando pipes ejecuta el ejercicio 15

#<< PASO 1 >>._  utilizamos la siguiente sintáxis
 mtcars %>%
  select((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
## Duster 360             3    4
## Merc 240D              4    2
## Merc 230               4    2
## Merc 280               4    4
## Merc 280C              4    4
## Merc 450SE             3    3
## Merc 450SL             3    3
## Merc 450SLC            3    3
## Cadillac Fleetwood     3    4
## Lincoln Continental    3    4
## Chrysler Imperial      3    4
## Fiat 128               4    1
## Honda Civic            4    2
## Toyota Corolla         4    1
## Toyota Corona          3    1
## Dodge Challenger       3    2
## AMC Javelin            3    2
## Camaro Z28             3    4
## Pontiac Firebird       3    2
## Fiat X1-9              4    1
## Porsche 914-2          5    2
## Lotus Europa           5    2
## Ford Pantera L         5    4
## Ferrari Dino           5    6
## Maserati Bora          5    8
## Volvo 142E             4    2
#<< PASO 2 >>._ Se puede usar la siguiente sintáxis
# mtcars%>%select(contains("a"))%>%select(-drat, -am)%>%head

EJERCICIO 17

#<< PASO 1 >>._ Ejecutamos el código presentado:
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
#<< PASO 2 >>._Explicación:
#Se obtiene la media y la desviación estándar de la columna mpg,
#agrupadas según su cilindraje y siempre y cuando su wt sea mayor a 1.5.

EJERCICIO 18

-Utilizando pipes ejecuta el ejercicio 17

# %>% <- pipes
# << PASO 1 >>. utlizamos el codigo head para ver la base de datos que se utilizará
#head(mtcars)

# << PASO 2 >>. Utilizando los pipes realizamos el codigo del ejercicio 17 
 mtcars%>%
  filter(wt>1.5)%>%
  group_by(cyl)%>%
  summarise(mn=mean(mpg),sd=sd(mpg))%>%
  # << PASO 3 >>. Utilizamos el comando head para mostrar los resultados
  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

# Activamos la libreria dplyr para realizar los siguientes ejercicios
#library(dplyr)

EJERCICIO 20

# << PASO 1 >>. buscamos el archivo vuelos.csv en el link
# << PASO 2 >>. Lo ponemos en una variable para poder usar el archivo
url<-"http://gauss.inf.um.es/datos/vuelos.csv"
head(read.csv(file = url,header = T,sep = ","))
##         date hour minute  dep  arr dep_delay arr_delay carrier flight dest
## 1 2011-01-01   14      0 1400 1500         0       -10      AA    428  DFW
## 2 2011-01-02   14      1 1401 1501         1        -9      AA    428  DFW
## 3 2011-01-03   13     52 1352 1502        -8        -8      AA    428  DFW
## 4 2011-01-04   14      3 1403 1513         3         3      AA    428  DFW
## 5 2011-01-05   14      5 1405 1507         5        -3      AA    428  DFW
## 6 2011-01-06   13     59 1359 1503        -1        -7      AA    428  DFW
##    plane cancelled time dist
## 1 N576AA         0   40  224
## 2 N557AA         0   45  224
## 3 N541AA         0   48  224
## 4 N403AA         0   39  224
## 5 N492AA         0   44  224
## 6 N262AA         0   45  224
# << PASO 3 >>. Utilizamos la función head 
#               para visualizar el archivo vuelos.csv

EJERCICIO 21

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

# << PASO 1 >>. Ubicamos la dirección del archivo vuelos.csv que se va a descargar
url<-("http://gauss.inf.um.es/datos/vuelos.csv")
url
## [1] "http://gauss.inf.um.es/datos/vuelos.csv"
# << PASO 2 >>. Ponemos la dirección en donde se descargara el archivo
destino<-"C:\\Users\\PC\\Downloads\\vuelos.csv" #<- direccion donde se guardara el archivo descargado: Archivo:carpeta creada para guardar el archivo.csv
# << PASO 3 >>. Utilizando el comando download.file descargaremos el archivo
download.file(url,destino)
# << PASO 4 >>. Guardamos los datos en una variable y con el comando head visualizamos los primeros valores
vuelos<-read.csv(destino,header = T,sep = ",")
head(vuelos)
##         date hour minute  dep  arr dep_delay arr_delay carrier flight dest
## 1 2011-01-01   14      0 1400 1500         0       -10      AA    428  DFW
## 2 2011-01-02   14      1 1401 1501         1        -9      AA    428  DFW
## 3 2011-01-03   13     52 1352 1502        -8        -8      AA    428  DFW
## 4 2011-01-04   14      3 1403 1513         3         3      AA    428  DFW
## 5 2011-01-05   14      5 1405 1507         5        -3      AA    428  DFW
## 6 2011-01-06   13     59 1359 1503        -1        -7      AA    428  DFW
##    plane cancelled time dist
## 1 N576AA         0   40  224
## 2 N557AA         0   45  224
## 3 N541AA         0   48  224
## 4 N403AA         0   39  224
## 5 N492AA         0   44  224
## 6 N262AA         0   45  224

EJERCICIO 22

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

# << PASO 1 >>. Utilizando los datos de la variable vuelos filtraremos
#los vuelos a SFO o OAK
vSFO_OAK<-(filter(vuelos,(dest=="SFO"|dest=="OAK")))
# << PASO 2 >>. Con el comando head visualizaremos los primeros casos seleccionados
 head(vSFO_OAK)
##           date hour minute  dep  arr dep_delay arr_delay carrier flight dest
## 373 2011-01-31    8     51  851 1052         1       -27      CO    170  SFO
## 389 2011-01-31   11     29 1129 1351         4         1      CO    270  SFO
## 402 2011-01-31   14     32 1432 1656         7         5      CO    370  SFO
## 436 2011-01-31   17     48 1748 2001         3        -4      CO    570  SFO
## 467 2011-01-31   21     43 2143 2338        50        24      CO    770  SFO
## 468 2011-01-31    7     29  729 1002        -1         2      CO    771  SFO
##      plane cancelled time dist
## 373 N35407         0  225 1635
## 389 N37420         0  228 1635
## 402 N27213         0  229 1635
## 436 N75436         0  236 1635
## 467 N37281         0  224 1635
## 468 N26226         0  237 1635
# nota: nos quedamos con 1121 vuelos de los dos destinos seleccionados

EJERCICIO 23

vuelos%>%select(dest, dep_delay)%>%
   filter(dep_delay >60)%>%
   group_by(dest)%>%
   summarise(destino_retraso= n_distinct(dep_delay))%>%head
## # A tibble: 6 × 2
##   dest  destino_retraso
##   <chr>           <int>
## 1 ABQ                28
## 2 AEX                13
## 3 AMA                11
## 4 ASE                 6
## 5 ATL               105
## 6 AUS                49

EJERCICIO 24

select(vuelos, dep_delay, arr_delay)%>%head
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7
 select(vuelos, contains("delay"))%>%head
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7
 vuelos%>%select(dep_delay, arr_delay)%>%head
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7
 vuelos%>%select(6,7)%>%head
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7

EJERCICIO 25

 vuelos%>%
   select(date, hour, dep_delay)%>%
   group_by(date)%>%
   summarise(media= mean(dep_delay, na.rm=T), 
             mediana= median(dep_delay, na.rm=T),
            cuartil_75= quantile(dep_delay, 0.75, na.rm=T))%>%head
## # A tibble: 6 × 4
##   date       media mediana cuartil_75
##   <chr>      <dbl>   <dbl>      <dbl>
## 1 2011-01-01 10.7        3       15  
## 2 2011-01-02 15.7        7       20  
## 3 2011-01-03 13.4        4       18  
## 4 2011-01-04 11.9        5       18  
## 5 2011-01-05  6.33       1        8.5
## 6 2011-01-06  5.28       0        7

EJERCICIO 26

 vuelos%>%select(dep_delay, date, hour, flight)%>%
   filter(flight> 10)%>%
   group_by(date)%>%
   summarise(media_retraso= mean(dep_delay, na.rm=T),
             cantidad_vuelos_x_dia= n_distinct(flight))%>%head
## # A tibble: 6 × 3
##   date       media_retraso cantidad_vuelos_x_dia
##   <chr>              <dbl>                 <int>
## 1 2011-01-01         10.6                    531
## 2 2011-01-02         15.7                    649
## 3 2011-01-03         13.6                    668
## 4 2011-01-04         12.0                    554
## 5 2011-01-05          6.42                   561
## 6 2011-01-06          5.34                   629

EJERCICIO 27

#install.packages("RODBC")
#library(RODBC)
#conexion<- odbcConnect("taller_10", uid= "root", pwd= "root")
#vuelos1<- sqlQuery(conexion, "SELECT * FROM taller_10.vuelos;")
#head(vuelos1)