R 中的时间序列 (ts) 函数计数不正确

问题描述 投票:0回答:1

当使用 R 中的

ts
函数创建每月时间序列时,每个时间单位的总数似乎没有正确相加。例如,Jan-2014 的值应远大于 100,但输出显示为 3(见下文)。有谁知道我的代码有什么问题吗?

使用的代码:

set.seed(1)
df <- data.frame(date_rec = seq(as.Date("2014-01-01"),as.Date("2015-12-31"), by=1),
                 number = sample(c(1:10),size = 730, replace=TRUE))

df_ts <-  ts(df$number, frequency=12, start=c(2014,1), end=c(2015,12))
df_ts

df_ts 的结果

    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2014   3   4   6  10   3   9  10   7   7   1   3   2
2015   7   4   8   5   8  10   4   8  10   3   7   2
r time-series
1个回答
0
投票

在创建

ts
对象之前按月汇总每日数据:

library(tidyverse)

set.seed(1)
df <- data.frame(
  date_rec = seq(as.Date("2014-01-01"), as.Date("2015-12-31"), by = 1),
  number = sample(c(1:10), size = 730, replace = TRUE)
)

df |> 
  mutate(date_rec = round_date(date_rec, unit = "month")) |> 
  summarise(number = sum(number), .by = date_rec) |> 
  ts(frequency = 12, start = c(2014, 1), end = c(2015, 12))
#>          date_rec number
#> Jan 2014    16071     88
#> Feb 2014    16102    196
#> Mar 2014    16130    166
#> Apr 2014    16161    179
#> May 2014    16191    148
#> Jun 2014    16222    160
#> Jul 2014    16252    180
#> Aug 2014    16283    185
#> Sep 2014    16314    155
#> Oct 2014    16344    160
#> Nov 2014    16375    160
#> Dec 2014    16405    164
#> Jan 2015    16436    200
#> Feb 2015    16467    147
#> Mar 2015    16495    157
#> Apr 2015    16526    165
#> May 2015    16556    189
#> Jun 2015    16587    138
#> Jul 2015    16617    150
#> Aug 2015    16648    157
#> Sep 2015    16679    180
#> Oct 2015    16709    192
#> Nov 2015    16740    179
#> Dec 2015    16770    181

创建于 2024-03-18,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.