Seccion 5.2.4

Ejercicio 1

  1. Find all flights that had an arrival delay of two or more hours
flights %>%
  mutate(arrival_delay = arr_delay/60) %>%
  filter(arrival_delay >= 2) %>%
  select(flight, carrier, origin, dest, arrival_delay) %>%
  arrange(desc(arrival_delay))
  1. Find all flights that Flew to Houston
  1. Find all flights that were operated by United, America or Delta
flights %>%
  filter(carrier == c('UA', 'AA', 'DL')) %>%
  group_by(carrier) %>%
  summarize(cnt = n())
longer object length is not a multiple of shorter object length
  1. Find all flights Departed in summer (July, August, September)
flights %>%
  filter(month == c(7,8,9)) %>%
  mutate(month_name = ifelse(month==7, 'JULY',
                             ifelse(month==8, 'AUGUST',
                                    ifelse(month==9, 'SEPTEMBER', NA)))) %>%
  group_by(month_name) %>%
  summarise(cnt = n())
longer object length is not a multiple of shorter object length
NA
  1. Find all flights that arrived 2 hours late, but didn’t leave late
flights %>%
  mutate(arrival_delay_hour = arr_delay/60) %>%
  filter(dep_delay <= 0 & arrival_delay_hour >= 2) %>%
  select(flight, carrier, dest, origin, dep_delay, arrival_delay_hour)%>%
  arrange(desc(arrival_delay_hour))
  1. Find all flights that were delayed by at least an hour, but made up over 30 minutes in flight
  1. Find all flights that departed between midnight and 6am (inclusive)
flights %>%
  filter(hour >= 0 & hour <= 6) %>%
  group_by(hour) %>%
  summarize(cnt = n())

Seccion 5.3.1

Ejercicio 2

Sort flights to find the most delayed flights.

Find the flights that left earliest

Ejercicio 3

Sort flights to find the fastes flights

Seccion 5.4.1

Ejercicio 1

Brainstorm as many ways as possible to select dep_time, dep_delay, arr_time, and arr_delay from flights.

Ejercicio 2

What happens if you include the name of a variable multiple times in a select() call?

R/ Nothing, it is not included more than one time

Seccion 5.5.2

Ejercicio 1

Currently dep_time and sched_dep_time are convenient to look at, but hard to compute with because they’re not really continuous numbers. Convert them to a more convenient representation of number of minutes since midnight.

flights %>%
  transmute(dep_time,
              dep_time_hour = dep_time %/% 100 ,
              dep_time_minute = dep_time %% 100,
              dep_time_minutes_smn = dep_time_hour*60+dep_time_minute,
              sched_dep_time,
              sched_dep_time_hour = sched_dep_time %/% 100, 
              sched_dep_time_minute = sched_dep_time %% 100,
              sched_dep_time_minutes_smn = sched_dep_time_hour*60+sched_dep_time_minute)
NA
NA

Seccion 5.7.1

Ejercicio 2

Which plane (tailnum) has the worst on-time record?

LS0tDQp0aXRsZTogIkhvamEgZGUgVHJhYmFqbyAxIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCmxpYnJhcnkobnljZmxpZ2h0czEzKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQojIyBTZWNjaW9uIDUuMi40DQojIyMgRWplcmNpY2lvIDENCg0KMS4gRmluZCBhbGwgZmxpZ2h0cyB0aGF0IGhhZCBhbiBhcnJpdmFsIGRlbGF5IG9mIHR3byBvciBtb3JlIGhvdXJzDQoNCmBgYHtyfQ0KZmxpZ2h0cyAlPiUNCiAgbXV0YXRlKGFycml2YWxfZGVsYXkgPSBhcnJfZGVsYXkvNjApICU+JQ0KICBmaWx0ZXIoYXJyaXZhbF9kZWxheSA+PSAyKSAlPiUNCiAgc2VsZWN0KGZsaWdodCwgY2Fycmllciwgb3JpZ2luLCBkZXN0LCBhcnJpdmFsX2RlbGF5KSAlPiUNCiAgYXJyYW5nZShkZXNjKGFycml2YWxfZGVsYXkpKQ0KDQpgYGANCg0KMi4gRmluZCBhbGwgZmxpZ2h0cyB0aGF0IEZsZXcgdG8gSG91c3Rvbg0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICBmaWx0ZXIoZGVzdCA9PSBjKCdJQUgnLCAnSE9VJykpICU+JQ0KICBncm91cF9ieShkZXN0KSAlPiUNCiAgc3VtbWFyaXplKGNudCA9IG4oKSkNCmBgYA0KDQozLiBGaW5kIGFsbCBmbGlnaHRzIHRoYXQgd2VyZSBvcGVyYXRlZCBieSBVbml0ZWQsIEFtZXJpY2Egb3IgRGVsdGENCg0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICBmaWx0ZXIoY2FycmllciA9PSBjKCdVQScsICdBQScsICdETCcpKSAlPiUNCiAgZ3JvdXBfYnkoY2FycmllcikgJT4lDQogIHN1bW1hcml6ZShjbnQgPSBuKCkpDQpgYGANCg0KNC4gRmluZCBhbGwgZmxpZ2h0cyBEZXBhcnRlZCBpbiBzdW1tZXIgKEp1bHksIEF1Z3VzdCwgU2VwdGVtYmVyKQ0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICBmaWx0ZXIobW9udGggPT0gYyg3LDgsOSkpICU+JQ0KICBtdXRhdGUobW9udGhfbmFtZSA9IGlmZWxzZShtb250aD09NywgJ0pVTFknLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UobW9udGg9PTgsICdBVUdVU1QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKG1vbnRoPT05LCAnU0VQVEVNQkVSJywgTkEpKSkpICU+JQ0KICBncm91cF9ieShtb250aF9uYW1lKSAlPiUNCiAgc3VtbWFyaXNlKGNudCA9IG4oKSkNCiAgDQpgYGANCg0KNS4gRmluZCBhbGwgZmxpZ2h0cyB0aGF0IGFycml2ZWQgMiBob3VycyBsYXRlLCBidXQgZGlkbid0IGxlYXZlIGxhdGUNCmBgYHtyfQ0KZmxpZ2h0cyAlPiUNCiAgbXV0YXRlKGFycml2YWxfZGVsYXlfaG91ciA9IGFycl9kZWxheS82MCkgJT4lDQogIGZpbHRlcihkZXBfZGVsYXkgPD0gMCAmIGFycml2YWxfZGVsYXlfaG91ciA+PSAyKSAlPiUNCiAgc2VsZWN0KGZsaWdodCwgY2FycmllciwgZGVzdCwgb3JpZ2luLCBkZXBfZGVsYXksIGFycml2YWxfZGVsYXlfaG91ciklPiUNCiAgYXJyYW5nZShkZXNjKGFycml2YWxfZGVsYXlfaG91cikpDQoNCmBgYA0KDQo2LiBGaW5kIGFsbCBmbGlnaHRzIHRoYXQgd2VyZSBkZWxheWVkIGJ5IGF0IGxlYXN0IGFuIGhvdXIsIGJ1dCBtYWRlIHVwIG92ZXIgMzAgbWludXRlcyBpbiBmbGlnaHQNCg0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICBmaWx0ZXIoZGVwX2RlbGF5ID49IDYwICYgYXJyX2RlbGF5IDw9IDMwKSAlPiUNCiAgIHNlbGVjdChmbGlnaHQsIGNhcnJpZXIsIGRlc3QsIG9yaWdpbiwgZGVwX2RlbGF5LCBhcnJfZGVsYXkpICU+JQ0KICBhcnJhbmdlKGFycl9kZWxheSkNCmBgYA0KNy4gRmluZCBhbGwgZmxpZ2h0cyB0aGF0IGRlcGFydGVkIGJldHdlZW4gbWlkbmlnaHQgYW5kIDZhbSAoaW5jbHVzaXZlKQ0KDQpgYGB7cn0NCmZsaWdodHMgJT4lDQogIGZpbHRlcihob3VyID49IDAgJiBob3VyIDw9IDYpICU+JQ0KICBncm91cF9ieShob3VyKSAlPiUNCiAgc3VtbWFyaXplKGNudCA9IG4oKSkNCmBgYA0KDQojIyBTZWNjaW9uIDUuMy4xDQojIyMgRWplcmNpY2lvIDINCg0KU29ydCBmbGlnaHRzIHRvIGZpbmQgdGhlIG1vc3QgZGVsYXllZCBmbGlnaHRzLg0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICBtdXRhdGUodG90YWxfZGVsYXkgPSBkZXBfZGVsYXkgKyBhcnJfZGVsYXkpICU+JQ0KICBzZWxlY3QoZmxpZ2h0LCBjYXJyaWVyLCBvcmlnaW4sIGRlc3QsIHRvdGFsX2RlbGF5KSAlPiUNCiAgYXJyYW5nZShkZXNjKHRvdGFsX2RlbGF5KSkNCmBgYA0KDQpGaW5kIHRoZSBmbGlnaHRzIHRoYXQgbGVmdCBlYXJsaWVzdA0KDQpgYGB7cn0NCmZsaWdodHMgJT4lDQogIHNlbGVjdChmbGlnaHQsIGNhcnJpZXIsIG9yaWdpbiwgZGVzdCwgZGVwX2RlbGF5KSAlPiUNCiAgYXJyYW5nZShkZXBfZGVsYXkpDQpgYGANCg0KIyMjIEVqZXJjaWNpbyAzDQoNClNvcnQgZmxpZ2h0cyB0byBmaW5kIHRoZSBmYXN0ZXMgZmxpZ2h0cw0KDQpgYGB7cn0NCmZsaWdodHMgJT4lDQogIG11dGF0ZSh2ZWxvY2l0eSA9IGRpc3RhbmNlLyhhaXJfdGltZS82MCkpICU+JQ0KICBzZWxlY3QoZmxpZ2h0LCBjYXJyaWVyLCBvcmlnaW4sIGRlc3QsIGFpcl90aW1lLCBkaXN0YW5jZSwgdmVsb2NpdHkpICU+JQ0KICBhcnJhbmdlKGRlc2ModmVsb2NpdHkpKQ0KYGBgDQoNCg0KIyMgU2VjY2lvbiA1LjQuMQ0KDQojIyMgRWplcmNpY2lvIDENCg0KQnJhaW5zdG9ybSBhcyBtYW55IHdheXMgYXMgcG9zc2libGUgdG8gc2VsZWN0IGRlcF90aW1lLCBkZXBfZGVsYXksIGFycl90aW1lLCBhbmQgYXJyX2RlbGF5IGZyb20gZmxpZ2h0cy4NCg0KYGBge3J9DQpmbGlnaHRzICU+JQ0Kc2VsZWN0KCBkZXBfdGltZSwgZGVwX2RlbGF5LCBhcnJfdGltZSwgYXJyX2RlbGF5KQ0KYGBgDQoNCiMjIyBFamVyY2ljaW8gMg0KDQpXaGF0IGhhcHBlbnMgaWYgeW91IGluY2x1ZGUgdGhlIG5hbWUgb2YgYSB2YXJpYWJsZSBtdWx0aXBsZSB0aW1lcyBpbiBhIHNlbGVjdCgpIGNhbGw/DQoNCmBgYHtyfQ0KZmxpZ2h0cyAlPiUNCiAgc2VsZWN0KCBkZXBfdGltZSwgZGVwX2RlbGF5LCBhcnJfdGltZSwgYXJyX2RlbGF5LCBkZXBfdGltZSwgYXJyX3RpbWUpDQogIA0KYGBgDQoNClIvIE5vdGhpbmcsIGl0IGlzIG5vdCBpbmNsdWRlZCBtb3JlIHRoYW4gb25lIHRpbWUNCg0KIyMgU2VjY2lvbiA1LjUuMg0KDQojIyMgRWplcmNpY2lvIDENCg0KQ3VycmVudGx5IGRlcF90aW1lIGFuZCBzY2hlZF9kZXBfdGltZSBhcmUgY29udmVuaWVudCB0byBsb29rIGF0LCBidXQgaGFyZCB0byBjb21wdXRlIHdpdGggYmVjYXVzZSB0aGV54oCZcmUgbm90IHJlYWxseSBjb250aW51b3VzIG51bWJlcnMuIENvbnZlcnQgdGhlbSB0byBhIG1vcmUgY29udmVuaWVudCByZXByZXNlbnRhdGlvbiBvZiBudW1iZXIgb2YgbWludXRlcyBzaW5jZSBtaWRuaWdodC4NCg0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICB0cmFuc211dGUoZGVwX3RpbWUsDQogICAgICAgICAgICAgIGRlcF90aW1lX2hvdXIgPSBkZXBfdGltZSAlLyUgMTAwICwNCiAgICAgICAgICAgICAgZGVwX3RpbWVfbWludXRlID0gZGVwX3RpbWUgJSUgMTAwLA0KICAgICAgICAgICAgICBkZXBfdGltZV9taW51dGVzX3NtbiA9IGRlcF90aW1lX2hvdXIqNjArZGVwX3RpbWVfbWludXRlLA0KICAgICAgICAgICAgICBzY2hlZF9kZXBfdGltZSwNCiAgICAgICAgICAgICAgc2NoZWRfZGVwX3RpbWVfaG91ciA9IHNjaGVkX2RlcF90aW1lICUvJSAxMDAsIA0KICAgICAgICAgICAgICBzY2hlZF9kZXBfdGltZV9taW51dGUgPSBzY2hlZF9kZXBfdGltZSAlJSAxMDAsDQogICAgICAgICAgICAgIHNjaGVkX2RlcF90aW1lX21pbnV0ZXNfc21uID0gc2NoZWRfZGVwX3RpbWVfaG91cio2MCtzY2hlZF9kZXBfdGltZV9taW51dGUpDQogIA0KICANCmBgYA0KDQojIyBTZWNjaW9uIDUuNy4xDQoNCiMjIyBFamVyY2ljaW8gMg0KDQpXaGljaCBwbGFuZSAodGFpbG51bSkgaGFzIHRoZSB3b3JzdCBvbi10aW1lIHJlY29yZD8NCg0KYGBge3J9DQpmbGlnaHRzICU+JQ0KICBuYS5vbWl0KGFycl9kZWxheSkgJT4lDQogIGdyb3VwX2J5KHRhaWxudW0pICU+JQ0KICBzdW1tYXJpemUodG90YWxfZGVsYXkgPSBzdW0oYXJyX2RlbGF5KSkgJT4lDQogIG11dGF0ZShybmsgPSByYW5rKGRlc2ModG90YWxfZGVsYXkpKSkgJT4lDQogIGZpbHRlcihybmsgPCAxMCkgJT4lDQogIGFycmFuZ2Uocm5rKQ0KDQoNCmBgYA0K