在这种情况下,我将Quandl的数据集作为动物园对象。然后使用申请。函数我在将它移动到ts对象之前将其转换。 当我从zoo转换为ts时,我得到一个十进制值索引。有没有办法让索引回到" Y-m-d"?
示例代码:
data <- Quandl("YAHOO/AAPL", trim_start="01-01-2000", trim_end="01-01-2010", type="zoo")
data <- data[,4]
data <- apply.weekly(data, mean)
data <- ts(data, frequency=52, class="ts",
start=c(year(start(data)),week(start(data))))
然后我用:
head(index(data))
我得到的是:
[1] 2000.019 2000.038 2000.058 2000.077 2000.096 2000.115
我想要的是:
[1] "01-08-2000" "01-15-2000" "01-22-2000" "01-29-2000"
最后一行来自:
format(date_decimal(index(data)), "%m-%d-%Y")
所以我想我可以看看这两种方式,
(1)我可以在ts之后更改索引吗? (例如从第一个索引到第二个索引 - 上面)我似乎无法找到任何迹象表明我可以
(2)我可以阻止ts以十进制形式设置索引吗?
在有人询问之前,这是针对我所在的TS类的项目,我不想使用Quandl崩溃(?)调用 - 有一些原因,但主要原因是我想要最小化对Quandl的调用次数。因此,我需要以日常形式提取数据 - 这意味着它必须在动物园中出现,但我需要在用户端崩溃后输出ts。 - 我正在为这门课程写一个闪亮的应用程序,这个索引malarky正在推动我的墙。
谢谢!
答案 0 :(得分:0)
尝试使用zooreg
这是zoo包提供的另一种类型,以帮助ts
类型:
‘zooreg’ is the creator for the S3 class ‘"zooreg"’ for regular ‘"zoo"’ series. It inherits from ‘"zoo"’ and is the analogue to ‘ts’.
这是快速尝试:
R> aapl <- Quandl("YAHOO/AAPL", trim_start="01-01-2000", trim_end="01-01-2010", type="zoo")
R> weeklyaapl <- apply.weekly(aapl[,4], mean)
R> summary(as.zooreg(weeklyaapl))
Index as.zooreg(weeklyaapl)
Min. :2000-01-07 Min. : 13.3
1st Qu.:2002-07-06 1st Qu.: 22.3
Median :2005-01-03 Median : 56.0
Mean :2005-01-03 Mean : 70.6
3rd Qu.:2007-07-04 3rd Qu.:104.7
Max. :2009-12-31 Max. :210.8
R> head(weeklyaapl)
2000-01-07 2000-01-14 2000-01-21 2000-01-28 2000-02-04 2000-02-11
102.588 94.975 108.828 108.063 102.825 112.762
R>
日期索引对象仍然可以根据自己的喜好进行格式化。