我想将每日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
问题是1月1日不会在星期日发生,所以split.xts
不一定按照我的意愿行事。
我最初认为我可以创建与上述日期相对应的四个间隔,但我不知道这是否是正确的方法。
有没有办法按照你创建的间隔分割xts对象?
答案 0 :(得分:3)
您可以使用.indexmday
获取xts对象中每个观察的月中某天。然后使用cut
定义要拆分的间隔。
intervals <- cut(.indexmday(January_series), c(0,7,14,21,31), paste0("W",1:4))
splitlist <- split(January_series, intervals)