R -- 数据分析, 时间日期处理,POSIX

(1)x1=”2021-11-12”
x1_data=as.Date(x1)
(2)x2=”Jan,19,2021”
x2_data=as.Data(x2,format=”%b,%d,%Y”)
(3)x3=”2021-11-12 20:10:19”
x3_dt=as.POSIX(x3)
(4)x4=” Jan,19,2021 20:10:19”
x4_dt=as.POSIXct(x4,format=”%b,%d,%Y %H:%M:%S)
- 只保留日期 x4_d=as.Date(x4_dt)
- 只保留时间 x4_t1=format(x4_dt,” %H:%M:%S”)
- 变成12小时进制的时间x4_t2=format(x4_dt,’%H:%M:%p’)
【as.POSIXlt】可以单独提取每个部分
- x4_dt_lt$year+1900 年
- x4_dt_lt$mon+1 月
- x4_dt_lt$mday1-7-19’),by=’years’)
创建有时间日期的数据
seq(as.Date(‘2001-7-19’),by’days’,length=10)
seq(as.Date(‘2001-7-19’),as.Date(2021-7-19’),by=’years’)
时间差的计算
11:32
—注意单位的一致性

以下基于【lubridate】的运用
(5) x5=”21-Nov-2021”
x5_d=dmy(x5)
(6) x6=(“2017-01-31 08:11 pm”)
x6_dt=ymd_hm(x6)
(7)分开的年月日分钟秒的合并
df_new=df%>%
mutate(dt=make_datetime(year,month,day,hour,minute,second))%>%
mutate(date=format(dt,”%Y:%m:%d”),time=format(dt,”%H”%M:%S”))%>%
(7)一些其他功能
z=as.POSIXct(“2017-01-31 20:11:59”)
- year=(z)提取年
- momth=(z)提取月 momth=(z,lable= TRUE,abbr=FALSE)
- day=(z) 提取日 wday=(z,lable= TRUE,abbr=FALSE)
- now() 日期时间时区
- today()日期
- decimal_date(z)
- leap_year(z)
- round_date(z,unit=”year”)