将每日转换为每周,其中 R 中的每周从每周二开始
这是代码: 编辑:请参阅下面的可复制代码
>require("quantmod")
>
> corn <- as.xts(read.zoo("~/CORN.csv", sep=",", format ="%m/%d/%Y", header=TRUE))
>
> head(corn)
[,1]
1962-01-03 4.03
1962-01-04 3.99
1962-01-05 4.02
1962-01-08 4.03
1962-01-09 4.05
1962-01-10 4.07
>
> corn <- to.weekly(corn)[,4]
>
> head(corn)
corn.Close
1962-01-05 4.02
1962-01-12 4.08
1962-01-19 4.11
1962-01-26 4.11
1962-02-02 4.08
1962-02-09 4.05
您如何从星期二开始每周? 的情况
indexAt='startof("Tuesday")'
类似于to.weekly() 函数中 indexAt 是参数变量
。这样做的目的是与每周 COT 数据保持一致。
编辑##################
我因不提供可重现的代码而造成了一些混乱,所以这里有一些基于 J. Winchester 的建议合并的部分解决方案:
> getSymbols("GLD")
[1] "GLD"
> GLD <- GLD[,4]
> head(GLD, n=2)
GLD.Close
2007-01-03 62.28
2007-01-04 61.65
> tues <- weekdays(time(GLD)) == "Tuesday"
> gold <- merge(GLD, tues)
> head(gold, n=5)
GLD.Close tues
2007-01-03 62.28 0
2007-01-04 61.65 0
2007-01-05 60.17 0
2007-01-08 60.48 0
2007-01-09 60.85 1
Here is the code: EDIT: SEE REPRODUCIBLE CODE BELOW
>require("quantmod")
>
> corn <- as.xts(read.zoo("~/CORN.csv", sep=",", format ="%m/%d/%Y", header=TRUE))
>
> head(corn)
[,1]
1962-01-03 4.03
1962-01-04 3.99
1962-01-05 4.02
1962-01-08 4.03
1962-01-09 4.05
1962-01-10 4.07
>
> corn <- to.weekly(corn)[,4]
>
> head(corn)
corn.Close
1962-01-05 4.02
1962-01-12 4.08
1962-01-19 4.11
1962-01-26 4.11
1962-02-02 4.08
1962-02-09 4.05
How do you start every week on Tuesday? Something along the lines of
indexAt='startof("Tuesday")'
where indexAt is a parameter variable in the to.weekly() function.
The purpose for this is to line up with weekly COT data.
EDIT ##################
I've created some confusion by not providing reproducible code, so here is some with a partial solution incorporated based on suggestions by J. Winchester below:
> getSymbols("GLD")
[1] "GLD"
> GLD <- GLD[,4]
> head(GLD, n=2)
GLD.Close
2007-01-03 62.28
2007-01-04 61.65
> tues <- weekdays(time(GLD)) == "Tuesday"
> gold <- merge(GLD, tues)
> head(gold, n=5)
GLD.Close tues
2007-01-03 62.28 0
2007-01-04 61.65 0
2007-01-05 60.17 0
2007-01-08 60.48 0
2007-01-09 60.85 1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个怎么样(基于 Alaiacano 的虚拟数据框)。
How about this (based on the dummy data frame from Alaiacano).
可能有一个更优雅的解决方案,但这应该可以解决问题
输出如下所示:
您可以删除星期几和/或使用 row.names 而不是 corn$dates
There may be a more elegant soltuion, but this should do the trick
Output looks like this:
You can drop the day of week and/or use the row.names instead of corn$dates