Я пытаюсь преобразовать ежеквартальные данные в ежедневные данные, добавив предыдущие значения в отсутствующие даты. Эти данные состоят из финансовых коэффициентов различных запасов. У моих данных есть метка строки, построенная из двух столбцов: тикер и дата. Поскольку у меня есть повторяющиеся даты для каждого запаса, я не уверен, как игнорировать тикер и повторно заполнять отсутствующие даты с предыдущими значениями.Добавить отсутствующие даты с предыдущими значениями в R - преобразование ежеквартально в ежедневные данные
Вот как небольшая выборка данных выглядит так далеко:
> df_new
de eps pe ps pb
APD 2015-09-30 1.373 1.6 21.463 2.772 3.784
APD 2015-12-31 1.325 1.68 21.284 2.893 3.805
APD 2016-03-31 1.411 -2.19 56.114 3.254 4.491
SWKS 2003-03-31 0.402 -0.04 <NA> <NA> <NA>
SWKS 2003-06-30 0.397 -0.04 -2.289 1.518 0.929
SWKS 2003-09-30 0.62 -0.29 -2.799 2.046 1.877
SWKS 2003-12-31 0.643 0.03 -25.426 2.045 1.905
SWKS 2004-03-31 0.657 -0.06 -32.004 2.641 2.579
SWKS 2004-06-30 0.584 0.09 -37.18 1.825 1.782
SWKS 2004-09-30 0.555 0.1 65.806 1.881 1.962
SWKS 2004-12-31 0.525 0.09 45.823 1.777 1.912
И я хочу, чтобы выглядеть следующим образом (если еженедельно):
> df_new
de eps pe ps pb
APD 2015-09-30 1.373 1.6 21.463 2.772 3.784
APD 2015-10-01 1.373 1.6 21.463 2.772 3.784
APD 2015-10-02 1.373 1.6 21.463 2.772 3.784
APD 2015-10-03 1.373 1.6 21.463 2.772 3.784
...
APD 2015-12-31 1.325 1.68 21.284 2.893 3.805
APD 2016-01-01 1.325 1.68 21.284 2.893 3.805
APD 2016-01-02 1.325 1.68 21.284 2.893 3.805
APD 2016-01-03 1.325 1.68 21.284 2.893 3.805
...
APD 2016-03-31 1.411 -2.19 56.114 3.254 4.491
APD 2016-04-01 1.411 -2.19 56.114 3.254 4.491
APD 2016-04-02 1.411 -2.19 56.114 3.254 4.491
APD 2016-04-03 1.411 -2.19 56.114 3.254 4.491
...
SWKS 2003-03-31 0.402 -0.04 <NA> <NA> <NA>
SWKS 2003-04-01 0.402 -0.04 <NA> <NA> <NA>
SWKS 2003-04-02 0.402 -0.04 <NA> <NA> <NA>
SWKS 2003-04-03 0.402 -0.04 <NA> <NA> <NA>
...
SWKS 2003-06-30 0.397 -0.04 -2.289 1.518 0.929
and so on...
Я искал ответы, и это ссылка: Add missing xts/zoo data with linear interpolation in R немного близка к тому, что я хочу. Хотя я не уверен, что делать с тикером.
Большое вам спасибо за помощь!
Большое спасибо за ваш быстрый ответ G. Гротендика !! Мне было интересно, как делать то же самое, что вы делаете, но с именем строки (ярлыком), являющимся тикером и символом, вместе с тем, что мой файловый фрейм уже сохранен (например, rowname [1,1] - APD 2015-09 -30). Я объединяю различные базы данных в одну, но имею различную периодичность во всех из них, поэтому я использую имя строки в качестве метки для идентификации каждой из существующих баз данных. – marya
@marya Вы, вероятно, хотите, чтобы 'rownames (df) <- paste (df $ symbol, df $ date)', но нет такой вещи, как операция индекса розеток '[1, 1]' ... – FXQuantTrader
Спасибо за ваш комментарий FXQuantTrader! Я просто пытался привести пример rowname в первой строке и как-то написал это, но вы правы! не такая вещь, так что я плохой! (Первый раз на этом форуме :) ..) Мои базы данных уже объединены таким образом, когда имена ростов были символом и датой, используя функцию вставки, я действительно спрашивал, как получить функцию G. Grothendieck, написанную выше, но учитывая, что имена розеров похожи на это. Я предполагаю, что я могу использовать функцию separate() для использования функции выше или передать эту функцию перед paste(). Еще раз спасибо!!! Я очень ценю помощь! – marya