4

xts または data.frame オブジェクトを使用しており、1 分間隔のデータを 15 分、1 時間ごとなどにロールアップする簡単な手段が必要です。

メソッドがあることは認識していto.periodますが、私の問題は、列が非 OHLC 列であるため、to.period を呼び出すとドロップされることです。

私のデータには、POSIXct、SomeVar、AnotherVar の 3 つの列があります。

このデータを変換する機能が必要であり、その間にデータ列を合計するか、最大値を取得します。仕組みと非常に似て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

編集: ジョシュアが指摘するように、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 に答える