在R中创建30年期间每周测量的时间序列

ogsagwnx  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(71)

我有一组30年(1991 - 2020)的每周数据。这些数据是在每年5月5日至10月10日之间每周收集的。这给了我30年来每年23周的数据。
我想用这个数据在R中创建一个时间序列。我该怎么做呢?在输出中应该只有690个条目,但是它在输出中生成了1531个条目。请参见下面我的代码和数据:
我在这里看到了一个类似的问题,但我的问题重复了30年。

myts <- ts(df$Kc_Kamble,  start = c(1991, 1), end = c(2020, 23),  frequency = 52)

Output in R:
Time Series:
Start = c(1991, 1) 
End = c(2020, 23) 
Frequency = 52

样本数据:

Year  Week    Kc_Kamble
1991    1   0.357445197
1991    2   0.36902168
1991    3   0.383675947
1991    4   0.400703221
1991    5   0.418901921
1991    6   0.437049406
1991    7   0.453742803
1991    8   0.467291036
1991    9   0.475942834
1991    10  0.476898402
1991    11  0.464632341
1991    12  0.436298927
1991    13  0.396338825
1991    14  0.352731819
1991    15  0.313539638
1991    16  0.283932169
1991    17  0.2627343
1991    18  0.247373874
1991    19  0.235647483
1991    20  0.225655859
1991    21  0.216663659
1991    22  0.208550065
1991    23  0.203605036
1992    1   0.336754943
1992    2   0.334735193
1992    3   0.342654691
1992    4   0.363520428
1992    5   0.397733301
1992    6   0.4399758
1992    7   0.483592219
1992    8   0.521920773
1992    9   0.548597061
1992    10  0.560150059
1992    11  0.557210705
1992    12  0.542114151
1992    13  0.5173071
1992    14  0.485236257
1992    15  0.448348321
1992    16  0.409089999
1992    17  0.369907993
1992    18  0.333162073
1992    19  0.300014261
1992    20  0.270225988
1992    21  0.243406301
1992    22  0.219247646
1992    23  0.204966601
ufj5ltwl

ufj5ltwl1#

让我建议以下步骤来设置和开始分析时间序列。
1.初始化你的时间序列,创建一个“日期”序列和“数据”(设置为NA)。使用xts库创建时间序列。

library(xts)
  dates <- seq(as.Date("1991-01-01"), as.Date("2020-01-01"), by = "weeks")
  data  <- rep(NA, length(dates))
  myxts <- xts(x = data, order.by = dates)
  str(myxts); head(myxts); tail(myxts)

1.收集您的数据。每年5月5日至10月10日期间每周收集一次数据。我建议设置时间窗口来引入您的数据。在本示例中,我只显示了一个时间窗口。您可以根据需要填充时间序列,例如从文件中读取。在本示例中,我插入了一个随机数。

start <- as.Date("2014-5-5"); end <- as.Date("2014-10-10")
  collect <- which ( index(myxts) >= start & index(myxts) <= end )
  myxts[collect] <- rnorm(length(collect))

1.验证收集的数据。您应该看到每个时间窗口内的数据,以及时间窗口外的NA。

myxts2 <- window(myxts, start=start-50, end=end+50)
  str(myxts2);  myxts2

1.可视化收集的数据。你可以查看完整的时间序列(如myxts)。注意自动绘制会删除所有的NA。

library(ggplot2)
  autoplot(myxts2, geom = "point")

相关问题