Преобразование периодичности XTS на не OHLC - PullRequest
4 голосов
/ 11 октября 2011

Я работаю с объектами xts или data.frame, и мне требуются простые средства для свертывания данных с интервалом в 1 минуту в 15 минут, каждый час и т. Д. *

Я понимаю, что естьto.period методов, но моя проблема в том, что мои столбцы не являются столбцами OHLC, поэтому они удаляются при вызове to.period.

Мои данные имеют три столбца: POSIXct, SomeVar, AnotherVar.

Мне нужна возможность конвертировать эти данные и при этом либо суммировать мои столбцы данных, либо взять затем макс.Очень похоже на то, как работает to.period, но со столбцами, которые имеют разные имена.Кроме того, мои данные столбца иногда являются факторными, а не числовыми, поэтому было бы идеально, если бы это могло также обрабатывать преобразование (при расчете).

Ответы [ 2 ]

6 голосов
/ 11 октября 2011

Используйте 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
3 голосов
/ 11 октября 2011

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...