当使用 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
在创建
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