我有一个问题,即在endpoints()
的xts
功能(以及to.weekly
功能,它使用端点)有时会返回周五本周结束,有时返回周一。
我的数据集被称为sp2
。
> head(sp2)
[,1]
2012-01-09 1.78
2012-01-10 1.78
2012-01-11 1.77
2012-01-12 1.80
2012-01-13 1.77
2012-01-16 1.77
> tail(sp2)
[,1]
2012-06-28 1.94
2012-06-29 1.92
2012-07-02 1.92
2012-07-03 1.90
2012-07-04 1.89
2012-07-05 1.89
> class(sp2)
[1] "xts" "zoo"
> weekdays(index(sp2))
[1] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[11] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[21] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[31] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[41] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[51] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[61] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[71] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[81] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[91] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[101] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[111] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
[121] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Monday" "Tuesday" "Wednesday" "Thursday"
因此,大家可以看到有数据系列没有丢失工作日。
然而.....
> weekdays(index(to.weekly(sp2)))
[1] "Friday" "Friday" "Friday" "Friday" "Friday" "Friday" "Friday" "Friday" "Friday" "Friday" "Monday"
[12] "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday"
[23] "Monday" "Monday" "Monday" "Thursday"
当然这应该是周五(除了最后一点也就是今天,周四)?
我在做什么错在这里,而且有一种解决方法?
我希望计算上周五至周五该数据连续数周的变化。
..........................................重复的例子...... ..................
i <- as.Date((as.numeric(Sys.Date())-200):as.numeric(Sys.Date()))
x <- xts(rep(1, length(i)), order.by = i)
weekdays(index(to.weekly(x)))
# [1] "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday"
# [14] "Sunday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday" "Monday"
# [27] "Monday" "Monday" "Monday" "Thursday"
y <- xts(rep(1, length(i)), order.by = as.POSIXct(i))
weekdays(index(to.weekly(y)))
# [1] "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday"
# [14] "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday" "Sunday"
# [27] "Sunday" "Sunday" "Sunday" "Thursday"
这是已被固定在R-伪造CRAN版中的错误。基本上,该指数的时间部分没有被丢弃,你遇到了一些时髦的业务时区和夏令时。
Install from R-Forge使用校正功能。
require(xts)
i <- Sys.Date()+200:0
x <- xts(rep(1, length(i)), order.by = i)
y <- xts(rep(1, length(i)), order.by = as.POSIXct(i))
all.equal(weekdays(index(to.weekly(x))), weekdays(index(to.weekly(y))))