You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言从tibble创建ts时间序列对象生成ggseasonplot报错求助

报错根因
  • ts()函数仅接受数值向量作为输入,原代码直接传入完整tibble,数据格式不符合要求
  • 时间参数配置错误:日度时间序列的start参数需传入「年份+当年第N天」的二元向量,frequency=8不符合日度数据的季节周期规则,按周为季节周期的日度数据frequency应设为7
  • 原始数据存在缺失的日期记录(样例中1月3、4日无数据),时间步长不连续,直接生成时间序列会导致数值与时间错位
修正实现代码

第一步:加载依赖包

library(tidyverse)
library(lubridate) # 用于日期处理
library(forecast) # 包含ggseasonplot绘图函数

第二步:预处理数据补全连续日期

data_clean <- data %>%
  # 拼接年月日为标准日期格式
  mutate(date = ymd(paste(Year, Month, Day, sep = "-"))) %>%
  # 补全所有连续的单日记录,缺失的案件数默认填充为0,可按需修改为NA
  complete(date = seq.Date(min(date), max(date), by = "day"),
           fill = list(Simple_Assault = 0))

第三步:生成ts时间序列对象

# 计算数据起始日期为2020年的第几天
start_day <- yday(min(data_clean$date))
# 仅提取案件数值列生成ts对象,frequency=7对应按周的季节周期
data_ts <- ts(data_clean$Simple_Assault,
              start = c(2020, start_day),
              frequency = 7)

第四步:绘制季节图

ggseasonplot(data_ts,
             year.labels = TRUE,
             col = hcl.colors(10, "Viridis"),
             main = "2020年简易攻击案每日数量周度季节波动")

内容的提问来源于stack exchange,提问作者Ed_Gravy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:39:00