我有一个数据集,其每日价格为2009年1月1日至2019年1月1日,我想将其转换为时间序列。当我使用每月数据时,ts()
函数将按预期工作:
> head(monthlyts)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1999 0.8811 0.8854 0.9251 0.8940 0.8746 0.8521 0.8522 0.8799 0.9143 0.8951 0.9123 0.8862
2000 0.8665 0.8934 0.8900 0.8709 0.8463 0.8185 0.8319 0.8266 0.8677 0.8697 0.8346 0.8575
但是当我以每日价格尝试时,它的显示方式则完全不同:
> head(dailyts)
Time Series:
Start = 2009
End = 2009.01368925394
Frequency = 365.25
Price
[1,] 0.8990
[2,] 0.8990
[3,] 0.9014
[4,] 0.9004
[5,] 0.9041
[6,] 0.8986
我为两者使用的代码是相同的,所以我不确定是什么问题。
monthlyts <- ts(mprices['Price'], frequency=12, start=c(2009,1))
dailyts <- ts(dprices['Price'], frequency=365.25, start=c(2009,1))
数据也没有变化,两个.csv文件都是从同一个网站中删除的,并且具有相同的时间范围,只有一个是每月,一个是每天。
关于如何正确获取每日时间序列的任何想法?
这里有一些代表问题的测试数据
data <- as.data.frame(sample(seq(from=0, to=1, by=0.0001), size = 730, replace = TRUE))
colnames(data) <- 'data'
datats <- ts(data, frequency=365, start=c(2009,1))
head(datats)
它应该输出两行数据,分别标记为2009和2010,每行365列。