4

我正在使用 xts 或 data.frame 对象,需要一种简单的方法来将间隔为 1 分钟的数据汇总为 15 分钟、每小时等...

我意识到有这些to.period方法,但我的问题是我的列是非 OHLC 列,因此在调用 to.period 时它们会被丢弃。

我的数据有三列:POSIXct、SomeVar、AnotherVar。

我需要转换这些数据的能力,这样做时要么总结我的数据列,要么取最大值。与工作方式非常相似to.period,但列的名称不同。此外,我的列数据有时是因子而不是数字,因此如果它也可以处理转换(计算时),那将是理想的。

4

2 回答 2

6

period.apply(或apply.daily,apply.weekly等)与您自己的自定义函数一起使用。就像是:

library(quantmod)
getSymbols("SPY")
myFun <- function(x) c(Low=min(Lo(x)),Vol=sum(Vo(x)))
out <- period.apply(SPY, endpoints(SPY,"years"), myFun)
#               Low         Vol
# 2007-12-31 136.75 39313707500
# 2008-12-31  74.34 75960174800
# 2009-12-31  67.10 62061939800
# 2010-12-31 101.13 52842325500
# 2011-10-10 107.43 42314587300
于 2011-10-11T12:56:10.387 回答
3

采用OHLC=FALSE

看看论据to.period

?to.period

编辑:正如 Joshua 指出的那样,该OHLC论点不受支持。但是,它似乎有效。

> library(quantmod)
> getSymbols("SPY")
[1] "SPY"
> to.period(Cl(SPY), 'years', OHLC=FALSE)
           SPY.Close
2007-12-31    146.21
2008-12-31     90.24
2009-12-31    111.44
2010-12-31    125.75
2011-10-10    119.58
于 2011-10-11T12:46:41.133 回答