八、日期和时间(2)

1、时间的设置

在设定日期后,有时需要更精确的时间,即精确到小时、分钟、秒。

使用函数Sys.time()可以返回目前的系统时间。

Sys.time()
[1] "2025-01-08 18:56:32 CST"

"CST"表示所在位置的时区代码,也称为中国标准时间(China Standard Time, CST),指的是中国东八区的时间,比UTC快8小时。"UTC"指的是协调时间(Universal Time Coordinated)。
如果"UTC"为2024-03-14 07:00:00,则中国标准时间为2024-03-14 15:00:00。

函数as.POSIXct()

函数as.POSIXct()设置时间向量对象,这个时间默认从1970年1月1日开始计数,并以秒为单位。

x = '2024-3-15 12:00:00'
fmt = '%Y-%m-%d %H:%M:%S'

as.POSIXct(x, format = fmt)
[1] "2024-03-15 12:00:00 CST"

在日期的基础上,加上时间的格式,以下是一些时间的格式。
%H:小时数(00-23);        %M:分钟数(00-59);        %S:秒数(00-59);
%I:小时数(00-12);          %p:AM/FM。

函数as.POSIXct(x, tz = '', origin = )
x:操作的对象;                   tz:时区(time zone);     origin:指定时间的起点。          

as.POSIXct(3600, tz = 'UTC', origin = '2025-01-08 19:00:00' )
[1] "2025-01-08 20:00:00 UTC"    #即'2025-01-08 19:00:00',经过3600秒,也就是1小时的时间

使用函数seq()处理时间。

seq(Sys.time(), by = '1 months', length.out = 6)
[1] "2025-01-08 19:45:01 CST" "2025-02-08 19:45:01 CST"
[3] "2025-03-08 19:45:01 CST" "2025-04-08 19:45:01 CST"
[5] "2025-05-08 19:45:01 CST" "2025-06-08 19:45:01 CST"

两个时间也可以比较大小。

x = '2024-3-15 12:00:00'
fmt = '%Y-%m-%d %H:%M:%S'

as.POSIXct(x, format = fmt) > Sys.time()
[1] FALSE

2、时间序列

函数ts(x, start, end, frequency)                英文time series:时间序列。
x:操作的对象,可以是向量、矩阵。
start:时间起点,可以是单一数值,也可以是含有两个数字的向量。
end:时间终点,它的数据格式应与start相同,通常可以省略。

frequency:相较于start时间起点的频率。

例如,建立2011-2017年的数据,年份数。

weight = c(71, 72, 71, 70, 71, 70, 71)     #数据向量

ts(weight, start = 2011, frequency = 1)    #建立时间序列
Time Series:
Start = 2011 
End = 2017 
Frequency = 1 
[1] 71 72 71 70 71 70 71

建立2024年1月到12月销售额的时间序列,月份数。

sales = c(10, 14, 13, 25, 14, 12, 
          15, 18, 18, 14, 15, 18 )

#参数'frequency = 12',得知这是月份,参数'start = c(2024, 1)'得知从第1月开始统计
ts(sales, start = c(2024, 1), frequency = 12)       
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2024  10  14  13  25  14  12  15  18  18  14  15  18

建立2024年每个季度的收入额,季度。

income = c(123, 124, 146, 155)

#参数'frequency = 4',得知这是季度,参数'start = c(2024, 1)'得知从第1季度开始统计
ts(income, start = c(2024, 1), frequency = 4)
     Qtr1 Qtr2 Qtr3 Qtr4
2024  123  124  146  155

从2024年2月8日起,每天记录消费,持续10天,天数。

cost = c(12, 10, 12, 10, 9, 
         12, 10, 10, 9, 10)

#参数'frequency = 365',得知这是天数,参数'start = c(2024, 8)'得知从第39天(2月8日)开始统计
ts(cost, start = c(2024, 39), frequency = 365)
Time Series:
Start = c(2024, 39) 
End = c(2024, 48) 
Frequency = 365 
 [1] 12 10 12 10  9 12 10 10  9 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值