時間格式,往往是數據處理的重要資料。
常有格式轉換、套用格式、日期計算等重要的作業需要轉換。
lubridate套件提供了快速又便捷的功能可以叫用,可以提升不少的開發效率!
#install.packages("tidyverse")
library(lubridate)
typeof(Sys.Date())
#取系統日
Sys.Date()
#取系統日(時分秒)
Sys.time()
#套用function
ymd_hms("2017-12-22 00:19:32 CST")
ydm_hms("2017-22-12 00:19:32 CST")
#lubridate叫用系統日
now()
now(tzone = "UTC")
日期計算小試
d<-now()
day(d)
day(d)<-1
d
取出日期對應值
date(d) #取出日期資料格式
year(d) #年
month(d)
month(d,label = TRUE)
month(d,label = TRUE,abbr = FALSE)
day(d)#Get day of date
wday(d)
wday(d,label = TRUE)
wday(d,label = TRUE,abbr = FALSE)
hour(d)#hour of date
minute(d)#minute of date
second(d)#second of date
week(d)#Get week of year
quarter(d)
semester(d)#half of year
am(d)
pm(d)
update(d,month=2,hour=1)
取日期段落
###Round Date-Time
floor_date(d,unit = "year")# 無條件捨去的概念
round_date(d,unit = "year")# 四捨五入的概念
ceiling_date(d,unit="year")# 無條件進位的概念
rollback(d)
好用的功能,先給定一個字串含日期,當作格式的範本。
之後,直接套入所需引用即可。
sf<-stamp("Created Sunday,Dec,31 2017 00:49")
sf(now())
時區套用
with_tz(d,"US/Pacific")
force_tz(d,"US/Pacific")
d
####Math with date-Time
#Period
period(5,units = "years")
now()+years(1)+months(1)+days(1)+hours(1)+seconds(1)
now()-years(1)-months(1)-days(1)-hours(1)-seconds(1)
period(c(90, 5), c("second", "minute"))
period(-1, "days")
##Duration
duration(5,units="years")
值定格式進行計算與日期標籤顯示開關
x <- ymd("2012-03-26")
month(x)
month(x) <- 1
month(x) <- 13
month(x) > 3
month(ymd(080101))
month(ymd(080101), label = TRUE)
month(ymd(080101), label = TRUE, abbr = FALSE)
month(ymd(080101) + months(0:11), label = TRUE)