Exercise 1

Using the cmhflights data from last week, create a column that unites the three columns Year, Month, and DayofMonth into a single column that we will name date_of_flight. This column should separate the three fields by “-”.

Hint: You will have to use load(...) with here(...).

## # A tibble: 35,993 x 4
##    date_of_flight  Year Month DayofMonth
##    <chr>          <int> <int>      <int>
##  1 2017-1-1        2017     1          1
##  2 2017-1-2        2017     1          2
##  3 2017-1-3        2017     1          3
##  4 2017-1-4        2017     1          4
##  5 2017-1-5        2017     1          5
##  6 2017-1-6        2017     1          6
##  7 2017-1-7        2017     1          7
##  8 2017-1-8        2017     1          8
##  9 2017-1-9        2017     1          9
## 10 2017-1-11       2017     1         11
## # … with 35,983 more rows

Exercise 2

Sticking with cmhflights, separate OriginCityName into two new columns, origin_city and origin_state. Do the same for DestCityname, calling the new columns destination_city and destination_state, respectively. Both city columns should only display the name of the city, while both state columns should only display the abbreviated state name (for example, “CA”, “OH”, etc.)

## # A tibble: 35,993 x 4
##    origin_city origin_state destination_city destination_state
##    <chr>       <chr>        <chr>            <chr>            
##  1 Los Angeles CA           Columbus         OH               
##  2 Los Angeles CA           Columbus         OH               
##  3 Los Angeles CA           Columbus         OH               
##  4 Los Angeles CA           Columbus         OH               
##  5 Los Angeles CA           Columbus         OH               
##  6 Los Angeles CA           Columbus         OH               
##  7 Los Angeles CA           Columbus         OH               
##  8 Los Angeles CA           Columbus         OH               
##  9 Los Angeles CA           Columbus         OH               
## 10 Los Angeles CA           Columbus         OH               
## # … with 35,983 more rows

Exercise 3

Tidy the weather data such that the resulting data-set, called wdf, has the days (the d1-d31 columns) as rows and TMIN and TMAX as columns. The end result should be as shown below:

id year month days TMAX TMIN
MX000017004 2010 1 d1 NA NA
MX000017004 2010 1 d2 NA NA
MX000017004 2010 1 d3 NA NA
MX000017004 2010 1 d4 NA NA
MX000017004 2010 1 d5 NA NA
MX000017004 2010 1 d6 NA NA
MX000017004 2010 1 d7 NA NA
MX000017004 2010 1 d8 NA NA
MX000017004 2010 1 d9 NA NA
MX000017004 2010 1 d10 NA NA
## # A tibble: 341 x 6
## # Groups:   id, year, month [11]
##    id           year month variable  TMAX  TMIN
##    <chr>       <int> <int> <chr>    <int> <int>
##  1 MX000017004  2010     1 d1          NA    NA
##  2 MX000017004  2010     1 d2          NA    NA
##  3 MX000017004  2010     1 d3          NA    NA
##  4 MX000017004  2010     1 d4          NA    NA
##  5 MX000017004  2010     1 d5          NA    NA
##  6 MX000017004  2010     1 d6          NA    NA
##  7 MX000017004  2010     1 d7          NA    NA
##  8 MX000017004  2010     1 d8          NA    NA
##  9 MX000017004  2010     1 d9          NA    NA
## 10 MX000017004  2010     1 d10         NA    NA
## # … with 331 more rows
LS0tCnRpdGxlOiAiTVBBIDU4MzAgLSBNb2R1bGUgMDMgRXhlcmNpc2VzIgpzdWJ0aXRsZTogIlNwcmluZyAyMDIwIgphdXRob3I6ICJQcm9mZXNzb3IgUnVoaWwiCmRhdGU6ICJVcGRhdGVkIG9uIGByIFN5cy5EYXRlKClgIgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6IAogICAgY29kZV9kb3dubG9hZDogeWVzCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGZpZ19jYXB0aW9uOiB5ZXMKICAgIGhpZ2hsaWdodDogemVuYnVybgogICAgbnVtYmVyX3NlY3Rpb25zOiBubwogICAgdGhlbWU6IGZsYXRseQogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogY29uc29sZQotLS0KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgpib2R5eyAvKiBOb3JtYWwgICovCi8qICAgIGZvbnQtZmFtaWx5OiBMYXRvLCBzYW5zLXNlcmlmOyAgCiAgICAgIGZvbnQtZmFtaWx5OiBNdWt0YSwgc2Fucy1zZXJpZjsgCiAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvIFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICBmb250LWZhbWlseTogS2FybGEsIHNhbnMtc2VyaWY7ICAqLwogICAgICBmb250LWZhbWlseTogJ01lcnJpd2VhdGhlciBTYW5zJywgc2Fucy1zZXJpZjsgCiAgICAgIGZvbnQtc2l6ZTogMThweDsKICB9CgpoMS50aXRsZSB7CiAgZm9udC1zaXplOiAzOHB4OwogIGNvbG9yOiBEYXJrUmVkOwp9CgpoMSB7IC8qIEhlYWRlciAxICovCiAgZm9udC1zaXplOiAyOHB4OwogIGNvbG9yOiBEYXJrQmx1ZTsKfQoKaDIgeyAvKiBIZWFkZXIgMiAqLwogICAgZm9udC1zaXplOiAyMnB4OwogIGNvbG9yOiBEYXJrQmx1ZTsKfQoKaDMgeyAvKiBIZWFkZXIgMyAqLwogIGZvbnQtc2l6ZTogMThweDsKICBjb2xvcjogRGFya0JsdWU7Cn0KCmNvZGUucnsgLyogQ29kZSBibG9jayAqLwogICAgZm9udC1mYW1pbHk6IE11a3RhLCBzYW5zLXNlcmlmOyAKICAgIGZvbnQtd2VpZ2h0OiA2MDA7ICAKICAgIGZvbnQtc2l6ZTogMThweDsKfQoKLyogcHJlIHsgLyogQ29kZSBibG9jayAtIGRldGVybWluZXMgY29kZSBzcGFjaW5nIGJldHdlZW4gbGluZXMgKi8KICAgIGZvbnQtc2l6ZTogMTZweDsKfSAqLwo8L3N0eWxlPgoKCmBgYHtyIGtsaXBweSwgZWNobyA9IEZBTFNFLCBpbmNsdWRlID0gVFJVRX0Ka2xpcHB5OjprbGlwcHkodG9vbHRpcF9tZXNzYWdlID0gJ0NsaWNrIHRvIGNvcHknLCB0b29sdGlwX3N1Y2Nlc3MgPSAnRG9uZScsIGNvbG9yID0gJ2Nvcm5mbG93ZXJibHVlJywgcG9zaXRpb24gPSBjKCd0b3AnLCAncmlnaHQnKSkKYGBgCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgZHBpID0gMzAwLCBjYWNoZSA9IFRSVUUsIGZpZy5hbGlnbiA9ICJjZW50ZXIiLCBmaWcud2lkdGggPSAxMCwgZmlnLmhlaWdodCA9IDgsIG91dC53aWR0aCA9ICIxMDAlIiwgaGlnaGxpZ2h0ID0gVFJVRSkgCmBgYAoKIyBFeGVyY2lzZSAxIApVc2luZyB0aGUgYGNtaGZsaWdodHNgIGRhdGEgZnJvbSBsYXN0IHdlZWssIGNyZWF0ZSBhIGNvbHVtbiB0aGF0IHVuaXRlcyB0aGUgdGhyZWUgY29sdW1ucyBgWWVhcmAsIGBNb250aGAsIGFuZCBgRGF5b2ZNb250aGAgaW50byBhIHNpbmdsZSBjb2x1bW4gdGhhdCB3ZSB3aWxsIG5hbWUgYGRhdGVfb2ZfZmxpZ2h0YC4gVGhpcyBjb2x1bW4gc2hvdWxkIHNlcGFyYXRlIHRoZSB0aHJlZSBmaWVsZHMgYnkgIi0iLiAgCgo+IEhpbnQ6IFlvdSB3aWxsIGhhdmUgdG8gdXNlIGBsb2FkKC4uLilgIHdpdGggYGhlcmUoLi4uKWAuCgpgYGB7ciBleDMxfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0aWR5bG9nKQpsaWJyYXJ5KGhlcmUpCgpsb2FkKAogIGhlcmUoImRhdGEiLCAiY21oZmxpZ2h0c18wMTA5MjAxNy5SRGF0YSIpCiAgKQoKY21oZmxpZ2h0cyAlPiUKICB1bml0ZSgKICAgIGNvbCA9ICJkYXRlX29mX2ZsaWdodCIsICMgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiAKICAgIGMoWWVhciwgTW9udGgsIERheW9mTW9udGgpLCAjIGNvbHVtbnMgdG8gYmUgdW5pdGVkCiAgICBzZXAgPSAiLSIsICMgdGhlIHNlcGFyYXRvciB0byBiZSB1c2VkIAogICAgcmVtb3ZlID0gRkFMU0UgIyBrZWVwIHRoZSBvcmlnaW5hbCBjb2x1bW4KICApICU+JQogIHNlbGVjdChjKDEsIDIsIDQsIDUpKSAjIG9ubHkgc2hvdyB0aGVzZSBjb2x1bW5zIGluIHRoZSBvdXRwdXQgCmBgYAoKCiMgRXhlcmNpc2UgMgpTdGlja2luZyB3aXRoIGBjbWhmbGlnaHRzYCwgc2VwYXJhdGUgYE9yaWdpbkNpdHlOYW1lYCBpbnRvIHR3byBuZXcgY29sdW1ucywgYG9yaWdpbl9jaXR5YCBhbmQgYG9yaWdpbl9zdGF0ZWAuIERvIHRoZSBzYW1lIGZvciBgRGVzdENpdHluYW1lYCwgY2FsbGluZyB0aGUgbmV3IGNvbHVtbnMgYGRlc3RpbmF0aW9uX2NpdHlgIGFuZCBgZGVzdGluYXRpb25fc3RhdGVgLCByZXNwZWN0aXZlbHkuIEJvdGggY2l0eSBjb2x1bW5zIHNob3VsZCBvbmx5IGRpc3BsYXkgdGhlIG5hbWUgb2YgdGhlIGNpdHksIHdoaWxlIGJvdGggc3RhdGUgY29sdW1ucyBzaG91bGQgb25seSBkaXNwbGF5IHRoZSBhYmJyZXZpYXRlZCBzdGF0ZSBuYW1lIChmb3IgZXhhbXBsZSwgIkNBIiwgIk9IIiwgZXRjLikgCgpgYGB7ciBleDMyfQpjbWhmbGlnaHRzICU+JQogIHNlcGFyYXRlKAogICAgY29sID0gT3JpZ2luQ2l0eU5hbWUsICMgY29sdW1uIHRvIGJlIHNlcGFyYXRlZCAKICAgIGludG8gPSBjKCJvcmlnaW5fY2l0eSIsICJvcmlnaW5fc3RhdGUiKSwgIyBuYW1lcyBvZiBuZXcgY29sdW1ucwogICAgc2VwID0gJywgJywgIyB0aGUgc2VwYXJhdG9yIAogICAgcmVtb3ZlID0gRkFMU0UgIyBrZWVwIG9yaWdpbmFsIGNvbHVtbgogICkgJT4lCiAgc2VwYXJhdGUoCiAgICBjb2wgPSBEZXN0Q2l0eU5hbWUsICMgY29sdW1uIHRvIGJlIHNlcGFyYXRlZCAKICAgIGludG8gPSBjKCJkZXN0aW5hdGlvbl9jaXR5IiwgImRlc3RpbmF0aW9uX3N0YXRlIiksICMgbmFtZXMgb2YgbmV3IGNvbHVtbnMKICAgIHNlcCA9ICcsICcsICMgdGhlIHNlcGFyYXRvciAKICAgIHJlbW92ZSA9IEZBTFNFICMga2VlcCBvcmlnaW5hbCBjb2x1bW4KICApICU+JQogIHNlbGVjdChvcmlnaW5fY2l0eSwgb3JpZ2luX3N0YXRlLCBkZXN0aW5hdGlvbl9jaXR5LCBkZXN0aW5hdGlvbl9zdGF0ZSkgIyBkaXNwbGF5IHRoZXNlIGNvbHVtbnMKYGBgCgoKIyBFeGVyY2lzZSAzClRpZHkgdGhlIGB3ZWF0aGVyYCBkYXRhIHN1Y2ggdGhhdCB0aGUgcmVzdWx0aW5nIGRhdGEtc2V0LCBjYWxsZWQgYHdkZmAsIGhhcyB0aGUgYGRheXNgICh0aGUgZDEtZDMxIGNvbHVtbnMpIGFzIHJvd3MgYW5kIGBUTUlOYCBhbmQgYFRNQVhgIGFzIGNvbHVtbnMuIFRoZSBlbmQgcmVzdWx0IHNob3VsZCBiZSBhcyBzaG93biBiZWxvdzoKCmBgYHtyIHRpeWV4MDF9CnJlYWQuZGVsaW0oCiBmaWxlID0gImh0dHA6Ly9zdGF0NDA1LmhhZC5jby5uei9kYXRhL3dlYXRoZXIudHh0IiwKIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRQogKSAtPiB3ZWF0aGVyCmBgYAoKfCBpZCAgICAgICAgICB8IHllYXIgIHwgbW9udGggfCBkYXlzICB8IFRNQVggIHwgVE1JTiAgfAp8IDotLSAgICAgICAgIHwgOi0tICAgfCA6LS0gICB8IDotLSAgIHwgOi0tICAgfCA6LS0gICB8CnwgTVgwMDAwMTcwMDQgfCAyMDEwICB8ICAgMSB8IGQxICAgfCAgICBOQSB8ICAgTkEgfAp8IE1YMDAwMDE3MDA0IHwgMjAxMCAgfCAgIDEgfCBkMiAgIHwgICAgTkEgIHwgIE5BIHwKfCBNWDAwMDAxNzAwNCB8IDIwMTAgIHwgICAxIHwgZDMgICB8ICAgICBOQSB8ICAgTkEgfAp8IE1YMDAwMDE3MDA0IHwgMjAxMCAgfCAgIDEgfCBkNCAgIHwgICAgTkEgIHwgIE5BIHwKfCBNWDAwMDAxNzAwNCB8IDIwMTAgIHwgICAxIHwgZDUgICB8ICAgICBOQSB8ICAgTkEgfAp8IE1YMDAwMDE3MDA0IHwgMjAxMCAgfCAgIDEgfCBkNiAgIHwgICAgIE5BIHwgICBOQSB8CnwgTVgwMDAwMTcwMDQgfCAyMDEwICB8ICAgMSB8IGQ3ICAgfCAgICAgTkEgfCAgIE5BIHwKfCBNWDAwMDAxNzAwNCB8IDIwMTAgIHwgICAxIHwgZDggICB8ICAgIE5BICB8ICBOQSB8CnwgTVgwMDAwMTcwMDQgfCAyMDEwICB8ICAgMSB8IGQ5ICAgfCAgICBOQSAgfCAgTkEgfAp8IE1YMDAwMDE3MDA0IHwgMjAxMCAgfCAgIDEgfCBkMTAgIHwgICAgIE5BIHwgICBOQSB8CgoKYGBge3IgZXgzM30Kd2VhdGhlciAlPiUKICBncm91cF9ieShpZCwgeWVhciwgbW9udGgsIGVsZW1lbnQpICU+JQogIHBpdm90X2xvbmdlcigKICAgIG5hbWVzX3RvID0gInZhcmlhYmxlIiwgIyBuYW1lIG9mIHRoZSBuZXcgY29sdW1uIHdoZXJlIG5hbWVzIHdpbGwgYmUgc3RvcmVkIAogICAgdmFsdWVzX3RvID0gInZhbHVlIiwgIyBuYW1lIG9mIHRoZSBuZXcgY29sdW1uIHdoZXJlIHZhbHVlcyB3aWxsIGJlIHN0b3JlZAogICAgNTozNSAjIHRoZSBjb2x1bW5zIHRvIGJlIGZsaXBwZWQgaW50byByb3dzCiAgKSAlPiUKICBwaXZvdF93aWRlcigKICAgIG5hbWVzX2Zyb20gPSBlbGVtZW50LCAjIGNvbHVtbiB3aG9zZSB2YWx1ZXMgYXJlIHVzZWQgdG8gbWFrZSBuZXcgY29sdW1ucyAKICAgIHZhbHVlc19mcm9tID0gdmFsdWUgIyB3aGVyZSB0byBnZXQgdGhlIHZhbHVlcyBmb3IgdGhlIG5ldyBjb2x1bW5zIAogICkKYGBgCgoKCgoK