Use dev (soon to be released) lubridate
This commit is contained in:
		@@ -39,6 +39,7 @@ Imports:
 | 
				
			|||||||
  viridis
 | 
					  viridis
 | 
				
			||||||
Remotes:
 | 
					Remotes:
 | 
				
			||||||
  hadley/forcats,
 | 
					  hadley/forcats,
 | 
				
			||||||
 | 
					  hadley/lubridate,
 | 
				
			||||||
  hadley/modelr,
 | 
					  hadley/modelr,
 | 
				
			||||||
  hadley/stringr,
 | 
					  hadley/stringr,
 | 
				
			||||||
  hadley/tibble,
 | 
					  hadley/tibble,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -137,34 +137,27 @@ Or within a single day:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```{r}
 | 
					```{r}
 | 
				
			||||||
flights_dt %>% 
 | 
					flights_dt %>% 
 | 
				
			||||||
  filter(dep_time < ymd(20130102, tz = "UTC")) %>% 
 | 
					  filter(dep_time < ymd(20130102)) %>% 
 | 
				
			||||||
  ggplot(aes(dep_time)) + 
 | 
					  ggplot(aes(dep_time)) + 
 | 
				
			||||||
  geom_freqpoly(binwidth = 600) # 600 s = 10 minutes
 | 
					  geom_freqpoly(binwidth = 600) # 600 s = 10 minutes
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note the two tricks I needed to create these plots:
 | 
					Note that when you use date-times in a numeric context (like in a histogram), 1 means 1 second, so a binwidth of 86400 means one day. For dates, 1 means 1 day.
 | 
				
			||||||
 | 
					 | 
				
			||||||
1.  When you use date-times in a numeric context (like in a histogram), 1 
 | 
					 | 
				
			||||||
    means 1 second, so a binwidth of 86400 means one day. For dates, 1
 | 
					 | 
				
			||||||
    means 1 day.
 | 
					 | 
				
			||||||
   
 | 
					 | 
				
			||||||
1.  R doesn't like to compare date-times with dates, so you can force
 | 
					 | 
				
			||||||
    `ymd()` to generate a date-time by supplying a `tz` argument.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### From other types
 | 
					### From other types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You may want to switch between a date-time and a date. That's the job of `as_datetime()` and `as_date()`:
 | 
					You may want to switch between a date-time and a date. That's the job of `as_datetime()` and `as_date()`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```{r}
 | 
					```{r}
 | 
				
			||||||
# as_datetime(today())
 | 
					as_datetime(today())
 | 
				
			||||||
as_date(now())
 | 
					as_date(now())
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sometimes you'll get date/times as numeric offsets from the "Unix Epoch", 1970-01-01. If the offset is in seconds, use `as_datetime()`; if it's in days, use `as_date()`.
 | 
					Sometimes you'll get date/times as numeric offsets from the "Unix Epoch", 1970-01-01. If the offset is in seconds, use `as_datetime()`; if it's in days, use `as_date()`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```{r}
 | 
					```{r}
 | 
				
			||||||
# as_datetime(60 * 60 * 10)
 | 
					as_datetime(60 * 60 * 10)
 | 
				
			||||||
as_date(365)
 | 
					as_date(365 * 10 + 2)
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Exercises
 | 
					### Exercises
 | 
				
			||||||
@@ -302,7 +295,7 @@ You can use `update()` to show the distribution of flights across the course of
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```{r}
 | 
					```{r}
 | 
				
			||||||
flights_dt %>% 
 | 
					flights_dt %>% 
 | 
				
			||||||
  mutate(dep_hour = update(dep_time, month = 1, day = 1)) %>% 
 | 
					  mutate(dep_hour = update(dep_time, yday = 1)) %>% 
 | 
				
			||||||
  ggplot(aes(dep_hour)) +
 | 
					  ggplot(aes(dep_hour)) +
 | 
				
			||||||
    geom_freqpoly(binwidth = 300)
 | 
					    geom_freqpoly(binwidth = 300)
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user