# 第三节
# 获取成分
[AppleScript] 纯文本查看 复制代码 library(tidyverse)
library(lubridate)
library(nycflights13)
datetime <- ymd_hms("2016-07-08 12:34:56")
year(datetime)
# 对于month()和wday(),可以设置label = 返回月份名称和星期数的缩写
[AppleScript] 纯文本查看 复制代码 month(datetime,label = T)
wday(datetime,label = T,abbr = T)
flights_dt %>%
mutate(wday = wday(dep_time,label = T))%>%
ggplot(aes(x = wday))+
geom_bar()
# 舍入
[AppleScript] 纯文本查看 复制代码 flights_dt%>%
count(week = floor_date(dep_time,"weak"))%>%
ggplot(aes(week,n))+
geom_line()
# 设置成分
# 使用每个访问器数据设置日期时间中的成分
[AppleScript] 纯文本查看 复制代码 (datetime <- ymd_hms("2016-07-08 12:34:56"))
year(datetime) <- 2020
datetime
# 除原地修改外,可通过update()创建新日期时间
[AppleScript] 纯文本查看 复制代码 update(datetime,year = 2020,month = 2,mday = 2,hour = 2)
# 如设置的值过大,可自动向后滚动
[AppleScript] 纯文本查看 复制代码 ymd("2015-2-1")%>%
update(mday = 30)
# 使用update()显示一年中所有航班的出发时间在一天中的分布
[AppleScript] 纯文本查看 复制代码 flights_dt%>%
mutate(dep_hour = update(dep_time,yday = 1))%>%
ggplot(aes(dep_hour))+
geom_freqpoly(binwidth = 300)
# 时间间隔
#1 时期——以秒为单位表示一段精确的时间
[AppleScript] 纯文本查看 复制代码 h_age <- today()-ymd(19910119)
h_age
as.duration(h_age)
# 日期可以和日期型数据相加或相减
tomorrow <- today()+ddays(1)
# 以秒为单位计算时间,可能会造成误差
#2 阶段——人工定义的一段时间,如几周或几月
# 闰年
ymd("2016-1-1")+dyears(1)
# 夏时制
one_pm + days(1)
one_pm + ddays(1)
ddays(1)
days(1)
flights_dt%>%
filter(arr_time<dep_time)
flights_dt <- flights_dt%>%
mutate(
overnight = arr_time<dep_time,
arr_time = arr_time + days(overnight * 1),
sched_arr_time = sched_arr_time + days(overnight * 1)
)
View(flights_dt)
flights_dt%>%
filter(overnight,arr_time<dep_time)
|