R_DATACAMP Working with Dates and Times in R

  • Dates and Times in R R中的日期与时间

as.Date("2014-04-10") 转化为日期格式

library(anytime) anytime包
sep_10_2009 <- c("September 10 2009", "2009-09-10", "10 Sep 2009", "09-10-2009")
anytime(sep_10_2009) 统一转化为2009-09-10 UTC的格式

ggplot(releases, aes(x = date, y = type)) +
geom_line(aes(group = 1, color = factor(major))) +
xlim(as.Date("2010-01-01"), as.Date("2014-01-01"))时间维度的折线图,第三行xlim为限制起始时间
scale_x_date(date_breaks = "10 years", date_labels = "%Y")设置好时间间隔

Sys.Date() - last_release_date算间隔了多少天 其中Sys.Date()是现在的时间

as.POSIXct("2010-10-01 12:12:00", tz = "America/Los_Angeles")将文本转化为时间格式,tz是时区

geom_vline()条形图中出现的,这是啥意思?

  • Parsing and Manipulating Dates and Times with lubridate用lubridate包处理之

library(lubridate)
mdy_hm(z)时分秒要和月日年用_隔开

parse_date_time()转换格式 排序
parse_date_time(two_orders, orders = c("mdy", "dmy"))

make_date()将年月日合并在一起,用于mutate中

用lubridate包提取日期
年月日时分秒如second(), year() etc
am()早上时间 dst()晚上时间 leap_year()检查是否为闰年
quarter(x, with_year = FALSE, fiscal_start = 1)季节
semester(x, with_year = FALSE)半年
以上都是按月/年等为维度提取频次
mean()可用于提取频率

ggridges包
geom_density_ridges() 啥用的?

any()

round_date(r_3_4_1, unit = "5 minutes")将时间转化为最近的一个值
floor_date(r_3_4_1, unit = "day")将时间转向down,我猜是“舍”
ceiling_date(r_3_4_1, unit = "week")将时间转向up,我猜是“入”,此处是最近的下一个周日

complete.cases()去除空值

  • Arithmetic with Dates and Times日期和时间的计算

时间相减,difftime(unit = "secs", "mins", "hours", "days", or "weeks")
today()今天的日期
now()现在的具体时间

时间+days(x)往后推x天
时间+ddays(x)往后推x天1小时
year week day 前+d表示一个duration,并非严格意义上的二十四小时,而是86400秒
有d就是duration,没d就是period

today() + 1:10 * days(2)从今天起往后推两天,推到二十天后为止

%--%可以设置一个区间
ymd("2001-01-01") %--% ymd("2001-12-31")
game2_local <- force_tz(game2, tzone = "America/Edmonton")
知道区间后,可以使用int_start(),int_end(),int_length()来查看相关信息

%within%
int_overlaps()

as.period()
as.duration()

  • Problems in practice 实践中的问题

force_tz(...., tzone = ....)设置时区
OlsonNames()时区名称的集合

with_tz()功能与force_tz类似,都是转换时区,但是with_tz()不会改变任何东西,只是将时区转换一下呈现

hms包,as.hms()只得出时间而不要时期

fast_strptime()
strptime()

lubridate包
stamp()
stamp("09/20/2017")(today())
stamp(finished)(today())

你可能感兴趣的:(R_DATACAMP Working with Dates and Times in R)