2011-10-11 61 views
3

我與XTS或data.frame對象的工作,需要一個簡單的方法來捲起的數據是1個分鐘的間隔分成15分,每小時等轉換XTS週期性...非OHLC

我知道有to.period方法,但我的問題是我的列是非OHLC列,所以他們在調用to.period時被丟棄。

我的數據有三列:POSIXct,SomeVar,AnotherVar。

我需要能夠轉換這些數據,同時這樣做總結我的數據列或採取最大。非常類似於to.period的工作方式,但列名稱不同。此外,我的列數據有時是因數而不是數字,所以如果這可以處理轉換(計算時),它也是理想的。

回答

5

使用period.apply(或apply.dailyapply.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 
+0

謝謝。發佈此作品後,我做了類似的事情。也有period.Max,period.Sum,period.Min。 – Dave

+0

如果'這個效果很好',請考慮將答案標記爲已接受。 –

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 
+0

這將工作......如果支持「(僅當前支持OHLC = TRUE)」。 –

+0

我想我是應該查看幫助頁面的人。 ;-) – GSee

+0

@Joshua其實,它適合我。 – GSee

相關問題