按R中指定的不规则间隔拆分xts对象

SAM*_*ANI 6 split r time-series xts

我想将每日xts对象拆分为4个单独的星期,这对应于该月的下一天:1日 - 7日,8日 - 14日,15日 - 21日和22日 - 月末,上周通常是更长(但没关系!).

以下是从一系列日期创建的2004年1月xts对象的一些示例代码:

week <- seq(from=as.Date("2004-01-01"), to=as.Date("2004-01-31"), by = "day")
x2 <- sample(1:50, 31) # generating 31 random numbers 
January_series <- xts(x2, order.by=week) # create January daily series 
Run Code Online (Sandbox Code Playgroud)

问题是1月1日不会在星期天发生,所以split.xts不一定按照我的意愿行事.

我最初认为我可以创建对应于上述日期的四个间隔,但我不知道这是否是正确的方法.

有没有办法按照你创建的间隔分割xts对象?

Jos*_*ich 3

您可以用来.indexmday获取 xts 对象中每个观察结果的月份日期。然后用于cut定义要分割的间隔。

intervals <- cut(.indexmday(January_series), c(0,7,14,21,31), paste0("W",1:4))
splitlist <- split(January_series, intervals)
Run Code Online (Sandbox Code Playgroud)