在R语言中如何使用ts()函数创建天粒度时间序列
R语言ts()函数创建天周期时间序列方法
ts()函数创建日度周期时间序列的核心是合理设置frequency和start两个参数,根据你的业务场景可以分为两种常见配置:
- 周度循环的日度序列:适合有每周重复规律的场景,比如门店销量、APP日活等,
frequency设置为7,代表7天为一个循环周期 - 年度循环的日度序列:适合有全年季节规律的场景,比如日度气温、降水量等,平年
frequency设置为365,闰年设置为366,代表一整年为一个循环周期
代码示例
1. 周周期日度时间序列创建
# 模拟生成30天的日度测试数据 daily_data <- rnorm(30, mean = 80, sd = 12) # 创建7天周期的时间序列,假设起始为第1周的第1天 ts_daily_weekly <- ts( data = daily_data, frequency = 7, start = c(1, 1) ) # 查看生成的序列属性 print(ts_daily_weekly)
2. 年周期日度时间序列创建
# 模拟生成2024年(闰年)366天的日度测试数据 daily_data <- rnorm(366, mean = 18, sd = 7) # 创建366天周期的时间序列,起始为2024年第1天 ts_daily_yearly <- ts( data = daily_data, frequency = 366, start = c(2024, 1) ) # 验证周期参数 frequency(ts_daily_yearly)
注意事项
- 传入
ts()之前需要先补全所有缺失的日期行,否则序列的时间对应关系会错位 - 如果需要关联日期的特殊属性(比如节假日、工作日过滤),更推荐使用
xts或zoo包处理日度序列,原生ts()更适合固定周期的纯时间序列分析场景
内容的提问来源于stack exchange,提问作者Chien Minh Ng
相关产品推荐
相关产品推荐

