r - 按索引(日期)拆分 xts 对象

标签 r object date split xts

我有一个包含日内数据的 xts 对象:

head(stocks[,1])
                    SMH.close
2009-01-02 09:31:00     17.66
2009-01-02 09:32:00     17.66
2009-01-02 09:33:00     17.64
2009-01-02 09:34:00     17.60
2009-01-02 09:35:00     17.58
2009-01-02 09:36:00     17.63

我想对日内数据执行各种分析,但操作不应跨越日边界。所以我想做的是按日期拆分数据(忽略时间)。因此,我提取了索引并通过以下方式保存了唯一的日期值:

y <- index(stocks)
x <- strptime(y, format="%Y-%m-%d")
uniquedates <- unique(x)

现在我想做一些与 ?split 中的示例类似的事情

> g <- airquality$Month
> l <- split(airquality, g)

此处空气质量数据按“月份”列的值拆分为一个列表对象。我不确定如何做类似的事情,因为在我的例子中日期是索引而不是数据列。我试过了,但出现错误。

> split(stocks, uniquedates)
Error in args[[i]] : subscript out of bounds

也许有一种更简洁的方法可以实现我想做的事情。非常感谢您的帮助。

最佳答案

您应该跳过 unique() 步骤。只需将 split.xts 与 f="days" 参数一起使用即可。

data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')
split.xts(sample.xts, f="days")
[[1]]
               Open     High      Low    Close
2007-01-02 50.03978 50.11778 49.95041 50.11778

[[2]]
              Open     High     Low    Close
2007-01-03 50.2305 50.42188 50.2305 50.39767

[[3]]
               Open     High      Low    Close
2007-01-04 50.42096 50.42096 50.26414 50.33236

[[4]]
snipped

关于r - 按索引(日期)拆分 xts 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005433/

相关文章:

sql - SQL 中的四舍五入日期

java - 如何指示 Hibernate 使用本地时区以外的时区将 Java 日期映射到 Oracle DATE 列?

r - 从嵌套列表中进行有效抽样

R,bit64,计算 data.table 中的行均值和标准差的问题

javascript - 将对象的属性作为日期对象返回时出现问题

java - 为什么我的父类(super class)对象实例会影响我继承的类对象实例?

MySQL 上的 WEEK 函数计算一年中的第一周

r - 单独的混合日期和时间

r - 将 R 数据框中列中的周分组为列中的月

java - 使用对象数组进行插入排序?