[英]Why am I getting a frequency of 1 for this monthly time series data in R?
我正在使用R進行時間序列分析,並且我將以下csv
文件加載到R
:
CSV file:
我使用zoo
包將我的數據幀轉換為ts
對象:
library(zoo)
df1_ts <- as.ts(read.zoo(df1, FUN = as.yearmon))
運行:
class(df1_ts)
# [1] "mts" "ts" "matrix"`
但是當我運行head(df1_ts)
,我得到以下結果:
head(df1_ts)
# Time Series:
# Start = 2014
# End = 2018
# Frequency = 1
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# 2014 4621 3569 4249 4593 3320 1970 2483 3474 4302 5670 5788 5570
# 2015 5747 4346 5176 5362 5360 3707 3883 5138 5568 6034 5989 5648
# 2016 5821 5164 5781 5346 5339 4743 5417 5514 5880 5899 6014 5641
# 2017 5980 5341 5890 5596 5753 5470 5589 5545 5749 5938 5864 5567
# 2018 5655 5392 5766 5268 5680 5337 5197 5714 5802 5935 5955 5637
我為什么得到Frequency
= 1? 我期待Frequency
為12,因為這些是月度數據?
我怎樣才能解決這個問題?
我嘗試了以下內容,沒有成功:
df1_ts <- as.ts(read.zoo(df1, FUN = as.yearmon), freq=12)
問題中顯示的代碼是創建一個多變量時間序列,由12個序列(每月一列)組成,其時間索引為年份; 然而,想要的是單個單變量月度系列。
使用最后注釋中可重復顯示的df1
,首先使用轉置將data.frame df1
轉換為矩陣,然后使用c
將該轉置矩陣逐列拆分為單個向量。 現在我們可以直接定義ts
系列:
tt <- ts(c(t(df1[-1])), start = df1$Year[1], freq = 12)
贈送:
frequency(tt)
## [1] 12
tt
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2014 1 2 3 4 5 6 7 8 9 10 11 12
## 2015 13 14 15 16 17 18 19 20 21 22 23 24
## 2016 25 26 27 28 29 30 31 32 33 34 35 36
## 2017 37 38 39 40 41 42 43 44 45 46 47 48
## 2018 49 50 51 52 53 54 55 56 57 58 59 60
請不要使用圖片來顯示您的輸入數據,因為它意味着任何人想要來回答它需要重打。 將其作為R代碼重復提供。 我這次為你做了這個,更改數據以避免輸入所有這些數字。
df1 <- as.data.frame(cbind(2014:2018, matrix(1:60, ncol = 12, byrow = TRUE)))
names(df1) <- c("Year", month.abb)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.