#Equipo 5
#Jenaro Martínez A01721951
#Santiago LLaguno a017219838
#Lisset Hernandez A01284611
#Evelyn Díaz A00829373
library(nycflights13)
library(tidyverse)
library(dplyr)
#1 Seleccionar del data frame flights los campos carrier, número de vuelo (flight), origen, destino, tiempo de vuelo y distancia recorrida
flights_select1 <- select(flights, carrier, flight, origin, dest, air_time, distance)
#2Selecciona del data frame flights todos los campos entre year y day (incluyéndolo)
flights_select2 <- select(flights, year:day)
#3 Seleccionar del data frame flights todos los campos con exepción de hour, minute y time_hour
flights_select3 <- select(flights, -hour, -minute, -time_hour)
#4 Seleccionar del data frame flights todos los campos que inicien con "dep"
flights_select4 <- select(flights, starts_with("dep"))
#5 Seleccionar del data frame flights todos los campos que terminen con "delay"
flights_select4 <- select(flights, ends_with("delay"))
#6 Seleccionar del data frame flights todos los campos que contengan "time"
col_time <- grep("time", colnames(flights))
col_time_df <- flights[, col_time]
col_time_df
#7 Seleccionar del data frame flights los campos de year a day, los que terminen con delay y los campos distances y air_time.
select(flights, year, day, distance, air_time)
col1 <- flights[, c("year", "day", "distance", "air_time")]
col_delay <- grep("delay", colnames(flights))
col_delay_df <- flights[, col_delay]
combined_df <- cbind(col1, col_delay_df)
combined_df
#agrega dos campos al data frame anterior
#1) tiempo_ganado que resulta de restar la hora de llegada a la hora de partida
flights2 <- flights %>% mutate(tiempo_ganado = dep_time - arr_time)
tiempo_ganado_df <- flights2[, "tiempo_ganado"]
todo_df <- cbind(tiempo_ganado_df,combined_df)
todo_df
#2) velocidad_vuelo que resulta de dividir distancia entre tiempo de vuelo por 60
flights3 <- flights %>% mutate(velocidad_vuelo = distance / air_time * 60)
velocidad_vuelo_df <- flights3[, "velocidad_vuelo"]
todo_df2 <- cbind(velocidad_vuelo_df,todo_df)
todo_df2
#8 Muestra únicamente los nuevos campos calculados con transmute()
flights4 <- flights %>% transmute(tiempo_ganado = dep_time - arr_time, velocidad_vuelo = distance/air_time *60)
flights4
#9 Muestra los vuelos que presentan un retraso superior a 2 horas a la hora de llegada
flights5 <- subset(flights, arr_delay > 2)
flights5
#10 Muestra los vuelos que presentan un retraso superior a 2 horas en la hora de llegada o en la hora de partida
flights6 <- subset(flights, dep_delay > 2)
#11
filter(flights,arr_delay<120|dep_delay<120)
#12
filter(flights,month==11|month==12)
#13
filter(flights,carrier=="UA"|carrier=="AA"|carrier=="DL")
#14
arrange(flights,desc(arr_delay))
flights %>% arrange(desc(arr_delay))
#15
mutate(flights,velocidad_vuelo=c((distance/air_time)*60)) %>% arrange(desc(velocidad_vuelo)) %>% transmute(carrier,distance,air_time,velocidad_vuelo)
#La aerolinea que vuela mas rápido es DL
## Aplicando funciones como min, max, mean, sum, count, etc con group_by() y summarize()
#16 Cuál es la media del retraso en los vuelos, agrupa por year, month, day
#Elimina los Na's
#Identifica el día, mes, año que tuvo menos retraso.
group <- group_by(flights, year, month, day)
group2<- summarize(group, retraso=mean(dep_delay, na.rm=TRUE))
`summarise()` has grouped output by 'year', 'month'. You can override using the `.groups` argument.
arrange(group2, retraso)
#La fecha con menor retraso fue el 24 de Septiembre del 2013.
#17 Obtén el número de vuelos por aerlorínea y destino
#Identifica aerolínea y destino con mayor número de vuelos ordenando el resultado anterior de forma descendente
conteo <- flights %>%
group_by(carrier, dest) %>%
summarize(total = n())
`summarise()` has grouped output by 'carrier'. You can override using the `.groups` argument.
conteo
#La aerolínea con mayor número de vuelos es 'DL' (Delta) y el destino con el mayor número de vuelos es ATL (Atlanta).
#18 Obtén la máxima distancias recorrida por aerolínea y destino, ordena en forma descendente por máxima distancia recorrida
dist <- flights %>%
group_by(carrier,dest) %>%
summarize(max_distancia = sum(distance))
`summarise()` has grouped output by 'carrier'. You can override using the `.groups` argument.
dist
#La aerolínea con mayor distancia recorrida es 'UA' (United Airlines) y el destino es SFO (San Fransisco).
#19 Obtén el tiempo de vuelo por aerolínea y destino, ordena en forma descendente por la suma_tiempo_vuelo e identifica las 3 aerolíneas con sus destinos que han volado más tiempo
tiempo <- flights %>%
group_by(carrier, dest) %>%
summarize(suma_tiempo_vuelo = sum(air_time, na.rm = TRUE))
`summarise()` has grouped output by 'carrier'. You can override using the `.groups` argument.
tiempo
#Las aerolineás con más tiempo volado son United Airlines (SFO, LAX, IAH), American Airlines (DFW, LAX, MIA) y Delta (ATL, LAX, SFO).
## Renombrando campos en un data frame con rename()
#20 En la consulta 18 renombra el campo max_distancia por distancia_máxima_recorrida
nombre <- dist %>% rename(distancia_máxima_recorrida = max_distancia)
nombre
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKLS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CiNFcXVpcG8gNQojSmVuYXJvIE1hcnTDrW5leiBBMDE3MjE5NTEKI1NhbnRpYWdvIExMYWd1bm8gYTAxNzIxOTgzOAojTGlzc2V0IEhlcm5hbmRleiBBMDEyODQ2MTEKI0V2ZWx5biBEw61heiBBMDA4MjkzNzMKCmxpYnJhcnkobnljZmxpZ2h0czEzKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShkcGx5cikKCgojMSBTZWxlY2Npb25hciBkZWwgZGF0YSBmcmFtZSBmbGlnaHRzIGxvcyBjYW1wb3MgY2FycmllciwgbsO6bWVybyBkZSB2dWVsbyAoZmxpZ2h0KSwgb3JpZ2VuLCBkZXN0aW5vLCB0aWVtcG8gZGUgdnVlbG8geSBkaXN0YW5jaWEgcmVjb3JyaWRhCgpmbGlnaHRzX3NlbGVjdDEgPC0gc2VsZWN0KGZsaWdodHMsIGNhcnJpZXIsIGZsaWdodCwgb3JpZ2luLCBkZXN0LCBhaXJfdGltZSwgZGlzdGFuY2UpCgojMlNlbGVjY2lvbmEgZGVsIGRhdGEgZnJhbWUgZmxpZ2h0cyB0b2RvcyBsb3MgY2FtcG9zIGVudHJlIHllYXIgeSBkYXkgKGluY2x1ecOpbmRvbG8pCgpmbGlnaHRzX3NlbGVjdDIgPC0gc2VsZWN0KGZsaWdodHMsIHllYXI6ZGF5KQoKIzMgU2VsZWNjaW9uYXIgZGVsIGRhdGEgZnJhbWUgZmxpZ2h0cyB0b2RvcyBsb3MgY2FtcG9zIGNvbiBleGVwY2nDs24gZGUgaG91ciwgbWludXRlIHkgdGltZV9ob3VyCgpmbGlnaHRzX3NlbGVjdDMgPC0gc2VsZWN0KGZsaWdodHMsIC1ob3VyLCAtbWludXRlLCAtdGltZV9ob3VyKQoKIzQgU2VsZWNjaW9uYXIgZGVsIGRhdGEgZnJhbWUgZmxpZ2h0cyB0b2RvcyBsb3MgY2FtcG9zIHF1ZSBpbmljaWVuIGNvbiAiZGVwIgoKZmxpZ2h0c19zZWxlY3Q0IDwtIHNlbGVjdChmbGlnaHRzLCBzdGFydHNfd2l0aCgiZGVwIikpCgojNSBTZWxlY2Npb25hciBkZWwgZGF0YSBmcmFtZSBmbGlnaHRzIHRvZG9zIGxvcyBjYW1wb3MgcXVlIHRlcm1pbmVuIGNvbiAiZGVsYXkiCgpmbGlnaHRzX3NlbGVjdDQgPC0gc2VsZWN0KGZsaWdodHMsIGVuZHNfd2l0aCgiZGVsYXkiKSkKYGBgCgoKYGBge3J9CiM2IFNlbGVjY2lvbmFyIGRlbCBkYXRhIGZyYW1lIGZsaWdodHMgdG9kb3MgbG9zIGNhbXBvcyBxdWUgY29udGVuZ2FuICJ0aW1lIgpjb2xfdGltZSA8LSBncmVwKCJ0aW1lIiwgY29sbmFtZXMoZmxpZ2h0cykpCmNvbF90aW1lX2RmIDwtIGZsaWdodHNbLCBjb2xfdGltZV0KY29sX3RpbWVfZGYKCiM3IFNlbGVjY2lvbmFyIGRlbCBkYXRhIGZyYW1lIGZsaWdodHMgbG9zIGNhbXBvcyBkZSB5ZWFyIGEgZGF5LCBsb3MgcXVlIHRlcm1pbmVuIGNvbiBkZWxheSB5IGxvcyBjYW1wb3MgZGlzdGFuY2VzIHkgYWlyX3RpbWUuCnNlbGVjdChmbGlnaHRzLCB5ZWFyLCBkYXksIGRpc3RhbmNlLCBhaXJfdGltZSkKY29sMSA8LSBmbGlnaHRzWywgYygieWVhciIsICJkYXkiLCAiZGlzdGFuY2UiLCAiYWlyX3RpbWUiKV0KCmNvbF9kZWxheSA8LSBncmVwKCJkZWxheSIsIGNvbG5hbWVzKGZsaWdodHMpKQpjb2xfZGVsYXlfZGYgPC0gZmxpZ2h0c1ssIGNvbF9kZWxheV0gCgpjb21iaW5lZF9kZiA8LSBjYmluZChjb2wxLCBjb2xfZGVsYXlfZGYpCmNvbWJpbmVkX2RmCgogICNhZ3JlZ2EgZG9zIGNhbXBvcyBhbCBkYXRhIGZyYW1lIGFudGVyaW9yCgogICMxKSB0aWVtcG9fZ2FuYWRvIHF1ZSByZXN1bHRhIGRlIHJlc3RhciBsYSBob3JhIGRlIGxsZWdhZGEgYSBsYSBob3JhIGRlIHBhcnRpZGEKZmxpZ2h0czIgPC0gZmxpZ2h0cyAlPiUgbXV0YXRlKHRpZW1wb19nYW5hZG8gPSBkZXBfdGltZSAtIGFycl90aW1lKQp0aWVtcG9fZ2FuYWRvX2RmIDwtIGZsaWdodHMyWywgInRpZW1wb19nYW5hZG8iXQp0b2RvX2RmIDwtIGNiaW5kKHRpZW1wb19nYW5hZG9fZGYsY29tYmluZWRfZGYpCnRvZG9fZGYKCiAgIzIpIHZlbG9jaWRhZF92dWVsbyBxdWUgcmVzdWx0YSBkZSBkaXZpZGlyIGRpc3RhbmNpYSBlbnRyZSB0aWVtcG8gZGUgdnVlbG8gcG9yIDYwCgpmbGlnaHRzMyA8LSBmbGlnaHRzICU+JSBtdXRhdGUodmVsb2NpZGFkX3Z1ZWxvID0gZGlzdGFuY2UgLyBhaXJfdGltZSAqIDYwKQp2ZWxvY2lkYWRfdnVlbG9fZGYgPC0gZmxpZ2h0czNbLCAidmVsb2NpZGFkX3Z1ZWxvIl0KdG9kb19kZjIgPC0gY2JpbmQodmVsb2NpZGFkX3Z1ZWxvX2RmLHRvZG9fZGYpCnRvZG9fZGYyCgojOCBNdWVzdHJhIMO6bmljYW1lbnRlIGxvcyBudWV2b3MgY2FtcG9zIGNhbGN1bGFkb3MgY29uIHRyYW5zbXV0ZSgpCmZsaWdodHM0IDwtIGZsaWdodHMgJT4lIHRyYW5zbXV0ZSh0aWVtcG9fZ2FuYWRvID0gZGVwX3RpbWUgLSBhcnJfdGltZSwgdmVsb2NpZGFkX3Z1ZWxvID0gZGlzdGFuY2UvYWlyX3RpbWUgKjYwKQpmbGlnaHRzNAoKCiM5IE11ZXN0cmEgbG9zIHZ1ZWxvcyBxdWUgcHJlc2VudGFuIHVuIHJldHJhc28gc3VwZXJpb3IgYSAyIGhvcmFzIGEgbGEgaG9yYSBkZSBsbGVnYWRhCmZsaWdodHM1IDwtIHN1YnNldChmbGlnaHRzLCBhcnJfZGVsYXkgPiAyKQpmbGlnaHRzNQoKCiMxMCBNdWVzdHJhIGxvcyB2dWVsb3MgcXVlIHByZXNlbnRhbiB1biByZXRyYXNvIHN1cGVyaW9yIGEgMiBob3JhcyBlbiBsYSBob3JhIGRlIGxsZWdhZGEgbyBlbiBsYSBob3JhIGRlIHBhcnRpZGEKZmxpZ2h0czYgPC0gc3Vic2V0KGZsaWdodHMsIGRlcF9kZWxheSA+IDIpCmBgYAoKCmBgYHtyfQojMTEKZmlsdGVyKGZsaWdodHMsYXJyX2RlbGF5PDEyMHxkZXBfZGVsYXk8MTIwKQojMTIKZmlsdGVyKGZsaWdodHMsbW9udGg9PTExfG1vbnRoPT0xMikKIzEzCmZpbHRlcihmbGlnaHRzLGNhcnJpZXI9PSJVQSJ8Y2Fycmllcj09IkFBInxjYXJyaWVyPT0iREwiKQojMTQKYXJyYW5nZShmbGlnaHRzLGRlc2MoYXJyX2RlbGF5KSkKZmxpZ2h0cyAlPiUgYXJyYW5nZShkZXNjKGFycl9kZWxheSkpCiMxNQptdXRhdGUoZmxpZ2h0cyx2ZWxvY2lkYWRfdnVlbG89YygoZGlzdGFuY2UvYWlyX3RpbWUpKjYwKSkgJT4lIGFycmFuZ2UoZGVzYyh2ZWxvY2lkYWRfdnVlbG8pKSAlPiUgdHJhbnNtdXRlKGNhcnJpZXIsZGlzdGFuY2UsYWlyX3RpbWUsdmVsb2NpZGFkX3Z1ZWxvKQoKI0xhIGFlcm9saW5lYSBxdWUgdnVlbGEgbWFzIHLDoXBpZG8gZXMgREwKYGBgCgoKYGBge3J9CiMjIEFwbGljYW5kbyBmdW5jaW9uZXMgY29tbyBtaW4sIG1heCwgbWVhbiwgc3VtLCBjb3VudCwgZXRjIGNvbiBncm91cF9ieSgpIHkgc3VtbWFyaXplKCkKCiMxNiBDdcOhbCBlcyBsYSBtZWRpYSBkZWwgcmV0cmFzbyBlbiBsb3MgdnVlbG9zLCBhZ3J1cGEgcG9yIHllYXIsIG1vbnRoLCBkYXkKI0VsaW1pbmEgbG9zIE5hJ3MKI0lkZW50aWZpY2EgZWwgZMOtYSwgbWVzLCBhw7FvIHF1ZSB0dXZvIG1lbm9zIHJldHJhc28uCmdyb3VwIDwtIGdyb3VwX2J5KGZsaWdodHMsIHllYXIsIG1vbnRoLCBkYXkpCmdyb3VwMjwtIHN1bW1hcml6ZShncm91cCwgcmV0cmFzbz1tZWFuKGRlcF9kZWxheSwgbmEucm09VFJVRSkpCmFycmFuZ2UoZ3JvdXAyLCByZXRyYXNvKQojTGEgZmVjaGEgY29uIG1lbm9yIHJldHJhc28gZnVlIGVsIDI0IGRlIFNlcHRpZW1icmUgZGVsIDIwMTMuCgojMTcgT2J0w6luIGVsIG7Dum1lcm8gZGUgdnVlbG9zIHBvciBhZXJsb3LDrW5lYSB5IGRlc3Rpbm8KI0lkZW50aWZpY2EgYWVyb2zDrW5lYSB5IGRlc3Rpbm8gY29uIG1heW9yIG7Dum1lcm8gZGUgdnVlbG9zIG9yZGVuYW5kbyBlbCByZXN1bHRhZG8gYW50ZXJpb3IgZGUgZm9ybWEgZGVzY2VuZGVudGUKY29udGVvIDwtIGZsaWdodHMgJT4lCiAgZ3JvdXBfYnkoY2FycmllciwgZGVzdCkgJT4lCiAgc3VtbWFyaXplKHRvdGFsID0gbigpKQpjb250ZW8KCiNMYSBhZXJvbMOtbmVhIGNvbiBtYXlvciBuw7ptZXJvIGRlIHZ1ZWxvcyBlcyAnREwnIChEZWx0YSkgeSBlbCBkZXN0aW5vIGNvbiBlbCBtYXlvciBuw7ptZXJvIGRlIHZ1ZWxvcyBlcyBBVEwgKEF0bGFudGEpLgoKIzE4IE9idMOpbiBsYSBtw6F4aW1hIGRpc3RhbmNpYXMgcmVjb3JyaWRhIHBvciBhZXJvbMOtbmVhIHkgZGVzdGlubywgb3JkZW5hIGVuIGZvcm1hIGRlc2NlbmRlbnRlIHBvciBtw6F4aW1hIGRpc3RhbmNpYSByZWNvcnJpZGEKZGlzdCA8LSBmbGlnaHRzICU+JQogIGdyb3VwX2J5KGNhcnJpZXIsZGVzdCkgJT4lCiAgc3VtbWFyaXplKG1heF9kaXN0YW5jaWEgPSBzdW0oZGlzdGFuY2UpKQpkaXN0CiNMYSBhZXJvbMOtbmVhIGNvbiBtYXlvciBkaXN0YW5jaWEgcmVjb3JyaWRhIGVzICdVQScgKFVuaXRlZCBBaXJsaW5lcykgeSBlbCBkZXN0aW5vIGVzIFNGTyAoU2FuIEZyYW5zaXNjbykuCgojMTkgT2J0w6luIGVsIHRpZW1wbyBkZSB2dWVsbyBwb3IgYWVyb2zDrW5lYSB5IGRlc3Rpbm8sIG9yZGVuYSBlbiBmb3JtYSBkZXNjZW5kZW50ZSBwb3IgbGEgc3VtYV90aWVtcG9fdnVlbG8gZSBpZGVudGlmaWNhIGxhcyAzIGFlcm9sw61uZWFzIGNvbiBzdXMgZGVzdGlub3MgcXVlIGhhbiB2b2xhZG8gbcOhcyB0aWVtcG8KdGllbXBvIDwtIGZsaWdodHMgJT4lCiAgZ3JvdXBfYnkoY2FycmllciwgZGVzdCkgJT4lCiAgc3VtbWFyaXplKHN1bWFfdGllbXBvX3Z1ZWxvID0gc3VtKGFpcl90aW1lLCBuYS5ybSA9IFRSVUUpKQp0aWVtcG8KI0xhcyBhZXJvbGluZcOhcyBjb24gbcOhcyB0aWVtcG8gdm9sYWRvIHNvbiBVbml0ZWQgQWlybGluZXMgKFNGTywgTEFYLCBJQUgpLCBBbWVyaWNhbiBBaXJsaW5lcyAoREZXLCBMQVgsIE1JQSkgeSBEZWx0YSAoQVRMLCBMQVgsIFNGTykuCgojIyBSZW5vbWJyYW5kbyBjYW1wb3MgZW4gdW4gZGF0YSBmcmFtZSBjb24gcmVuYW1lKCkKCiMyMCBFbiBsYSBjb25zdWx0YSAxOCByZW5vbWJyYSBlbCBjYW1wbyBtYXhfZGlzdGFuY2lhIHBvciBkaXN0YW5jaWFfbcOheGltYV9yZWNvcnJpZGEKbm9tYnJlIDwtIGRpc3QgJT4lIHJlbmFtZShkaXN0YW5jaWFfbcOheGltYV9yZWNvcnJpZGEgPSBtYXhfZGlzdGFuY2lhKQpub21icmUKYGBgCgoKCgoK