Подмножество объекта xts, использующее переменные для начального и конечного периодов - PullRequest
0 голосов
/ 18 января 2019

У меня есть объект xts, который называется 'usexts' с датами с 01 октября по 31 марта. Я хочу создать 3 подмножества этого объекта для периодов с 01 октября по 31 марта, с 01 октября по 16 по 31 марта. и с 1 октября по 31 марта по 18 марта без точного определения дат, поскольку они будут меняться с течением времени.

Структура объекта выглядит так:

dateperiod,usageval
2015-10-01,21542
2015-10-02,21572
2015-10-03,21342
...
...
2018-03-31,20942

У меня есть еще один фрейм данных с именем 'periodvalues', например: -

startdate,enddate, periodtext
2015-10-01,2016-03-31,1510_1603
2016-10-01,2017-03-31,1610_1703
2017-10-01,2018-03-31,1710_1803

Я хочу иметь возможность создавать 3 объекта XTS, например, так: -

usagexts_1510_1603 -> xts object containing usage details for relevant period
usagexts_1610_1703 -> xts object containing usage details for relevant period
usagexts_1710_1803 -> xts object containing usage details for relevant period

Я только дошел до создания списка размером 3, содержащего период, из указанного выше фрейма данных. Я пытался как-то указать начальный и конечный период для объекта xts, используя структуру «objectname fromdate / todate» через переменные, но это не сработало - что-то вроде этого:

usagexts_1610_1703 <- usagexts[var1/var2]

LHS пришел из списка, а переменные в RHS пришли из определения переменных, сделанного ранее.

usagexts_1610_1703 <- usagexts[var1/var2]

Ожидаемые результаты должны быть такими:

usagexts_1510_1603 <- usagexts["2015-10-01/2016-03-31"]
usagexts_1610_1703 <- usagexts["2016-10-01/2017-03-31"]
usagexts_1710_1803 <- usagexts["2017-10-01/2018-03-31"]

Любая помощь по этому вопросу будет высоко оценена.

С наилучшими пожеланиями

Дипак

1 Ответ

0 голосов
/ 20 января 2019

Если var1 и var2 являются переменными, тогда строку фильтра можно указать с помощью paste как:

 usagexts[paste(var1, var2, sep="/")] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...