1) Seleccionar las 3 primeras columnas del dataset mtcars y mostrar la cabecera

head(select(mtcars, 1:3))

2) Utilizar la ayuda de ?select_helpers para observar el resultado

?select_helpers

3) Seleccionar las columnas que empiezan por “d”

head(select(mtcars, starts_with(“d”)))

4) Seleccionar las columnas que terminan por “p”

head(select(mtcars, ends_with(“p”)))

5) Mostrar todas las columnas excepto “drat” y “am”

head(select(mtcars, -drat, -am))

6) Mostrar las columnas que contienen la letra “a”

head(select(mtcars, contains(“a”)))

7) Filtrar las columnas con mpg > 20 y gear == 4

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

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

head(filter(mtcars, am == 1 & cyl <= 6))

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

head(filter(mtcars, mpg < 21 | carb < 3 & gear < 4))

10) Ordenar por cilindrada (cyl) y por desplazamiento (disp)

mtcars_ordered <- mtcars[order(mtcars$cyl),] mtcars_ordered

mtcars_ordered1 <- mtcars[order(mtcars$disp),] mtcars_ordered1

11) Crear una nueva columna que indique los kilogramos que pesa el coche

mtcars\(ps <- round(mtcars\)wt * 0.45, 4) mtcars$ps round

View(mtcars)

12) Calcular la media de disp usando la función summarise

media_disp <- summarise(mtcars, media_disp = mean(disp)) media_disp

13) Calcular el máximo valor de disp para cada grupo de cilindros

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

14) Seleccionar las columnas desde “mpg” hasta “disp” en las 6 primeras filas

mtcars %>% select(mpg:disp) %>% head

15) Seleccionar las columnas que contienen “a”, excepto “drat” y “am”

head(select(select(mtcars, contains(“a”)), -drat, -am))

16) Utilizar pipes para ejecutar el ejercicio 15

mtcars %>% select(contains(“a”), -drat, -am)

17) Explicar el resultado del código

mtcars_filtered <- filter(mtcars, wt > 1.5) mtcars_grouped <- group_by(mtcars_filtered, cyl) summarise(mtcars_grouped, mn = mean(mpg), sd = sd(mpg)) print(“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.”)

18) Utilizando pipes ejecutar el ejercicio 17

mtcars %>% filter(wt > 1.5) %>% group_by(cyl) %>% summarise(mean(mpg), sd(mpg))

19) Imprimir mensaje sobre el uso de dplyr y pipes

print(“Es obligatorio utilizar las funciones del paquete dplyr y recomendable utilizar pipes %>% para los siguientes ejercicios.”)

20) Descargar el archivo vuelos.csv

21) Descargar el archivo y guardar los datos en una variable llamada vuelos

vuelos <- read.csv(“C:\Users\kevin\Downloads\vuelos.csv”) head(vuelos)

22) Seleccionar los vuelos con destino SFO u OAK utilizando las funciones del paquete dplyr. ¿Con cuántos vuelos nos quedamos?

destinos <- vuelos %>% select(dest) %>% filter(dest %in% c(“SFO”, “OAK”)) %>% count() head(destinos) print(“Nos quedamos con un total de 1121 vuelos con destino a SFO y OAK.”)

23) Seleccionar 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?

retrasos <- vuelos %>% select(dest, arr_delay) %>% filter(arr_delay > 60) atrasos_por_destino <- table(retrasos$dest) atrasos_por_destino_ord <- sort(atrasos_por_destino, decreasing = TRUE) head(atrasos_por_destino_ord, 1) print(“El destino con mayores retrasos en proporción a los vuelos es Atlanta con un total de 23225 minutos de retrasos.”)

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

head(select(vuelos, contains(“delay”))) head(select(vuelos, ends_with(“delay”))) head(select(vuelos, matches(“.y”))) head(select(vuelos, dep_delay, arr_delay))

25) Agrupar los vuelos por fecha y calcular: media, mediana y cuartil 75 de los retrasos en los vuelos por hora

agfecha <- vuelos %>% select(date, hour, arr_delay) %>% group_by(date) %>% summarise(media = mean(arr_delay, na.rm = TRUE), mediana = median(arr_delay, na.rm = TRUE), cuartil_75 = quantile(arr_delay, 0.75, na.rm = TRUE)) head(agfecha)

26) Utilizando pipes calcular la media de retraso en los vuelos por día y hora, la cantidad de vuelos por día y hora y luego mostrar solo los casos para los cuales haya más de 10

cvuelos <- vuelos %>% select(date, hour, arr_delay, flight) %>% filter(flight > 10) %>% group_by(date) %>% summarise(media_retraso = mean(arr_delay, na

27) Importar la base de datos realizada en MySQL a R

library("RODBC")
## Warning: package 'RODBC' was built under R version 4.3.2

Conectar a la base de datos MySQL

conexvuelos <- odbcConnect(“ALEXACONX”, uid = “root”, pwd = “”)

Ejecutar consulta SQL y guardar los resultados en vuelos1

vuelos1 <- sqlQuery(conexvuelos, “SELECT * FROM gaby.vuelos t10”)

Mostrar las primeras filas de los resultados

head(vuelos1)