library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
-- Attaching packages ----------------------------------------------------- tidyverse 1.3.0 --
<U+221A> ggplot2 3.3.2 <U+221A> purrr 0.3.4
<U+221A> tibble 3.0.4 <U+221A> dplyr 1.0.2
<U+221A> tidyr 1.1.2 <U+221A> stringr 1.4.0
<U+221A> readr 1.4.0 <U+221A> forcats 0.5.0
-- Conflicts -------------------------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
library(lubridate)
Attaching package: 㤼㸱lubridate㤼㸲
The following objects are masked from 㤼㸱package:base㤼㸲:
date, intersect, setdiff, union
library(nycflights13)
library(ggplot2)
library(dplyr) # alternatively, this also loads %>%
#Exercise 16.2.4 #1-What happens if you parse a string that contains invalid dates? #“ymd(c(”2010-10-10“,”bananas“))” #Solution: as ‘bananas’ is not a date or time zone it represent as ‘NA’
ymd(c("2010-10-10", "bananas"))
1 failed to parse.
[1] "2010-10-10" NA
#2-What does the tzone argument to today() do? Why is it important? #Solution:a character vector specifying which time zone. as the user may locate in diffrent time zones the ‘Today()’ function with time zone argument shows the time based on the user’s computer’s system timezone.
?today()
#3-Use the appropriate lubridate function to parse each of the following dates: #d1 <- “January 1, 2010” #d2 <- “2015-Mar-07” #d3 <- “06-Jun-2017” #d4 <- c(“August 19 (2015)”, “July 1 (2015)”) #d5 <- “12/30/14” # Dec 30, 2014
d1 <- "January 1, 2010"
d2 <- "2015-Mar-07"
d3 <- "06-Jun-2017"
d4 <- c("August 19 (2015)", "July 1 (2015)")
d5 <- "12/30/14" # Dec 30, 2014
mdy(d1)
[1] "2010-01-01"
ymd(d2)
[1] "2015-03-07"
dmy(d3)
[1] "2017-06-06"
mdy(d4)
[1] "2015-08-19" "2015-07-01"
mdy(d5)
[1] "2014-12-30"
#16.3.4 Exercises #How does the distribution of flight times within a day change over the course of the year?
flights %>%
select(year, month, day, hour, minute)
flights_dt = flights
flights_dt %>%
mutate(wday = wday(dep_time, label = TRUE)) %>%
ggplot(aes(x = wday)) +
geom_bar()

#2.Compare dep_time, sched_dep_time and dep_delay. Are they consistent? Explain your findings.
View(flights)
x= mutate(flights, quality_of_dep=dep_time - sched_dep_time )
y=filter(x, quality_of_dep ==0 )
x
y
#3.Compare air_time with the duration between the departure and arrival. Explain your findings. (Hint: consider the location of the airport.)
#4.How does the average delay time change over the course of a day? Should you use dep_time or sched_dep_time? Why?
#5.On what day of the week should you leave if you want to minimise the chance of a delay?
#6.What makes the distribution of diamonds\(carat and flights\)sched_dep_time similar?
#7.Confirm my hypothesis that the early departures of flights in minutes 20-30 and 50-60 are caused by scheduled flights that leave early. Hint: create a binary variable that tells you whether or not a flight was delayed.
Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.
LS0tDQp0aXRsZTogIkFzc2lnbm1lbnRfZGF0ZV90aW1lIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KDQoNCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShueWNmbGlnaHRzMTMpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGRwbHlyKSAgICAjIGFsdGVybmF0aXZlbHksIHRoaXMgYWxzbyBsb2FkcyAlPiUNCg0KDQpgYGANCg0KI0V4ZXJjaXNlIDE2LjIuNA0KIzEtV2hhdCBoYXBwZW5zIGlmIHlvdSBwYXJzZSBhIHN0cmluZyB0aGF0IGNvbnRhaW5zIGludmFsaWQgZGF0ZXM/DQojInltZChjKCIyMDEwLTEwLTEwIiwgImJhbmFuYXMiKSkiDQojU29sdXRpb246IGFzICdiYW5hbmFzJyBpcyBub3QgYSBkYXRlIG9yIHRpbWUgem9uZSBpdCByZXByZXNlbnQgYXMgJ05BJw0KYGBge3J9DQp5bWQoYygiMjAxMC0xMC0xMCIsICJiYW5hbmFzIikpDQpgYGANCg0KIzItV2hhdCBkb2VzIHRoZSB0em9uZSBhcmd1bWVudCB0byB0b2RheSgpIGRvPyBXaHkgaXMgaXQgaW1wb3J0YW50Pw0KI1NvbHV0aW9uOmEgY2hhcmFjdGVyIHZlY3RvciBzcGVjaWZ5aW5nIHdoaWNoIHRpbWUgem9uZS4gYXMgdGhlIHVzZXIgbWF5IGxvY2F0ZSBpbiBkaWZmcmVudCB0aW1lIHpvbmVzIHRoZSAnVG9kYXkoKScgZnVuY3Rpb24gd2l0aCB0aW1lIHpvbmUgYXJndW1lbnQgc2hvd3MgdGhlIHRpbWUgYmFzZWQgb24gdGhlIHVzZXIncyBjb21wdXRlcidzIHN5c3RlbSB0aW1lem9uZS4NCmBgYHtyfQ0KP3RvZGF5KCkNCmBgYA0KDQojMy1Vc2UgdGhlIGFwcHJvcHJpYXRlIGx1YnJpZGF0ZSBmdW5jdGlvbiB0byBwYXJzZSBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgZGF0ZXM6DQojZDEgPC0gIkphbnVhcnkgMSwgMjAxMCINCiNkMiA8LSAiMjAxNS1NYXItMDciDQojZDMgPC0gIjA2LUp1bi0yMDE3Ig0KI2Q0IDwtIGMoIkF1Z3VzdCAxOSAoMjAxNSkiLCAiSnVseSAxICgyMDE1KSIpDQojZDUgPC0gIjEyLzMwLzE0IiAjIERlYyAzMCwgMjAxNA0KYGBge3J9DQpkMSA8LSAiSmFudWFyeSAxLCAyMDEwIg0KZDIgPC0gIjIwMTUtTWFyLTA3Ig0KZDMgPC0gIjA2LUp1bi0yMDE3Ig0KZDQgPC0gYygiQXVndXN0IDE5ICgyMDE1KSIsICJKdWx5IDEgKDIwMTUpIikNCmQ1IDwtICIxMi8zMC8xNCIgIyBEZWMgMzAsIDIwMTQNCmBgYA0KDQpgYGB7cn0NCm1keShkMSkNCnltZChkMikNCmRteShkMykNCm1keShkNCkNCm1keShkNSkNCg0KDQpgYGANCiMxNi4zLjQgRXhlcmNpc2VzDQojSG93IGRvZXMgdGhlIGRpc3RyaWJ1dGlvbiBvZiBmbGlnaHQgdGltZXMgd2l0aGluIGEgZGF5IGNoYW5nZSBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIHllYXI/DQoNCmBgYHtyfQ0KZmxpZ2h0cyAlPiUgDQogIHNlbGVjdCh5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUpDQoNCg0KZmxpZ2h0c19kdCA9IGZsaWdodHMNCmZsaWdodHNfZHQgJT4lIA0KICBtdXRhdGUod2RheSA9IHdkYXkoZGVwX3RpbWUsIGxhYmVsID0gVFJVRSkpICU+JSANCiAgZ2dwbG90KGFlcyh4ID0gd2RheSkpICsNCiAgICBnZW9tX2JhcigpDQpgYGANCg0KDQojMi5Db21wYXJlIGRlcF90aW1lLCBzY2hlZF9kZXBfdGltZSBhbmQgZGVwX2RlbGF5LiBBcmUgdGhleSBjb25zaXN0ZW50PyBFeHBsYWluIHlvdXIgZmluZGluZ3MuDQoNCmBgYHtyfQ0KVmlldyhmbGlnaHRzKQ0KDQoNCmBgYA0KDQoNCmBgYHtyfQ0KIHg9ICBtdXRhdGUoZmxpZ2h0cywgcXVhbGl0eV9vZl9kZXA9ZGVwX3RpbWUgLSBzY2hlZF9kZXBfdGltZSApDQp5PWZpbHRlcih4LCBxdWFsaXR5X29mX2RlcCA9PTAgKQ0KeA0KeQ0KYGBgDQoNCiMzLkNvbXBhcmUgYWlyX3RpbWUgd2l0aCB0aGUgZHVyYXRpb24gYmV0d2VlbiB0aGUgZGVwYXJ0dXJlIGFuZCBhcnJpdmFsLiBFeHBsYWluIHlvdXIgZmluZGluZ3MuIChIaW50OiBjb25zaWRlciB0aGUgbG9jYXRpb24gb2YgdGhlIGFpcnBvcnQuKQ0KYGBge3J9DQoNCmBgYA0KDQpgYGB7cn0NCmBgYA0KDQojNC5Ib3cgZG9lcyB0aGUgYXZlcmFnZSBkZWxheSB0aW1lIGNoYW5nZSBvdmVyIHRoZSBjb3Vyc2Ugb2YgYSBkYXk/IFNob3VsZCB5b3UgdXNlIGRlcF90aW1lIG9yIHNjaGVkX2RlcF90aW1lPyBXaHk/DQpgYGB7cn0NCmBgYA0KIzUuT24gd2hhdCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIHlvdSBsZWF2ZSBpZiB5b3Ugd2FudCB0byBtaW5pbWlzZSB0aGUgY2hhbmNlIG9mIGEgZGVsYXk/DQoNCmBgYHtyfQ0KYGBgICAgDQoNCiM2LldoYXQgbWFrZXMgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkaWFtb25kcyRjYXJhdCBhbmQgZmxpZ2h0cyRzY2hlZF9kZXBfdGltZSBzaW1pbGFyPw0KYGBge3J9DQpgYGANCg0KIzcuQ29uZmlybSBteSBoeXBvdGhlc2lzIHRoYXQgdGhlIGVhcmx5IGRlcGFydHVyZXMgb2YgZmxpZ2h0cyBpbiBtaW51dGVzIDIwLTMwIGFuZCA1MC02MCBhcmUgY2F1c2VkIGJ5IHNjaGVkdWxlZCBmbGlnaHRzIHRoYXQgbGVhdmUgZWFybHkuIEhpbnQ6IGNyZWF0ZSBhIGJpbmFyeSB2YXJpYWJsZSB0aGF0IHRlbGxzIHlvdSB3aGV0aGVyIG9yIG5vdCBhIGZsaWdodCB3YXMgZGVsYXllZC4NCg0KYGBge3J9DQpgYGANCg0KDQpgYGB7cn0NCmBgYA0KDQoNCmBgYHtyfQ0KYGBgDQoNCg0KYGBge3J9DQpgYGANCg0KDQpgYGB7cn0NCmBgYA0KDQoNCmBgYHtyfQ0KYGBgDQoNCg0KYGBge3J9DQpgYGANCg0KDQpgYGB7cn0NCmBgYA0KDQoNCmBgYHtyfQ0KYGBgDQoNCg0KYGBge3J9DQpgYGANCg0KDQpgYGB7cn0NCmBgYA0KDQoNCmBgYHtyfQ0KYGBgDQoNCg0KYGBge3J9DQpgYGANCg0KDQpgYGB7cn0NCmBgYA0KDQoNCmBgYHtyfQ0KYGBgDQoNCkFkZCBhIG5ldyBjaHVuayBieSBjbGlja2luZyB0aGUgKkluc2VydCBDaHVuayogYnV0dG9uIG9uIHRoZSB0b29sYmFyIG9yIGJ5IHByZXNzaW5nICpDdHJsK0FsdCtJKi4NCg0KV2hlbiB5b3Ugc2F2ZSB0aGUgbm90ZWJvb2ssIGFuIEhUTUwgZmlsZSBjb250YWluaW5nIHRoZSBjb2RlIGFuZCBvdXRwdXQgd2lsbCBiZSBzYXZlZCBhbG9uZ3NpZGUgaXQgKGNsaWNrIHRoZSAqUHJldmlldyogYnV0dG9uIG9yIHByZXNzICpDdHJsK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuDQoNClRoZSBwcmV2aWV3IHNob3dzIHlvdSBhIHJlbmRlcmVkIEhUTUwgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGVkaXRvci4gQ29uc2VxdWVudGx5LCB1bmxpa2UgKktuaXQqLCAqUHJldmlldyogZG9lcyBub3QgcnVuIGFueSBSIGNvZGUgY2h1bmtzLiBJbnN0ZWFkLCB0aGUgb3V0cHV0IG9mIHRoZSBjaHVuayB3aGVuIGl0IHdhcyBsYXN0IHJ1biBpbiB0aGUgZWRpdG9yIGlzIGRpc3BsYXllZC4=