Как мне отставать на четверть в г? - PullRequest
0 голосов
/ 02 октября 2018

Прежде всего - спасибо за просмотр моего вопроса - независимо от того, ответите вы или нет.

Я пытаюсь добавить столбец, который содержит запаздывающие значения значения Quarter, к моему DF, однако при этом я получаю следующее предупреждение:

Warning messages:
1: In mutate_impl(.data, dots) :
 Vectorizing 'yearqtr' elements may not preserve their attributes

Ниже приведен мойпример данных (мои данные начинаются с 3 января 2008 г.)

Ticker  Price   Date      Quarter
  A       10    1/3/18    2018 Q1
  A       13.5  2/15/18   2018 Q1
  A       12.9  4/2/18    2018 Q2
  A       11.2  5/3/18    2018 Q2
  B       35.2  1/4/18    2018 Q1
  B       33.1  3/2/18    2018 Q1
  B       31    4/6/18    2018 Q2
 ...      ...   ...        ...
  XYZ     102    5/6/18   2018 Q2

У меня есть огромная таблица с несколькими акциями и несколькими датами.Я рассчитываю столбец четверти следующим образом:

df$quarter <- lag(as.yearqtr(df$Date))

Но, тем не менее, я не могу добавить столбец, который будет отставать от значений квартала.Кто-нибудь знает возможный обходной путь?

Я хотел бы следующий вывод:

Ticker  Price   Date      Quarter  Lag_Q
  A       10    1/3/18    2018 Q1   NA
  A       13.5  2/15/18   2018 Q1   NA
  A       12.9  4/2/18    2018 Q2   2018 Q1
  A       11.2  5/3/18    2018 Q2   2018 Q1
  B       35.2  1/4/18    2018 Q1   NA
  B       33.1  3/2/18    2018 Q1   NA
  B       31    4/6/18    2018 Q2   2018 Q1
 ...      ...   ...        ...
  XYZ     102    5/6/18   2018 Q2   2018 Q1

1 Ответ

0 голосов
/ 02 октября 2018

Во-первых, я бы предложил организовать ваши данные так, чтобы каждый столбец представлял цены отдельной ценной бумаги, а каждая строка - определенную дату.Оттуда вы можете легко преобразовать все ценные бумаги, но я не уверен, какова ваша конечная цель.Пакет xts превосходен, оптимизирован для c и является своего рода стандартом индустрии ценных бумаг.Я настоятельно рекомендую изучить его.Но это выходит за рамки вашего сообщения!

Для вашей структуры данных, хотя, одна строка должна сделать:

df$lag_Q <- as.yearqtr( ifelse(test = (df$quarter=="2018 Q1"), 
                                yes = NA, 
                                 no = df$quarter-0.25) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...