2016-08-19 23 views
0

У меня есть временная ряд каждые полчаса наблюдений в течение 100 дней, как так:аккуратного один шаг вперед прогноз

> df 
# A tibble: 4,704 x 3 
    city   datetime orders 
    <chr>    <time> <dbl> 
1 Wien 2016-05-12 00:00:00  1 
2 Wien 2016-05-12 00:30:00  4 
3 Wien 2016-05-12 01:00:00  2 
4 Wien 2016-05-12 01:30:00  0 
5 Wien 2016-05-12 02:00:00  5 
6 Wien 2016-05-12 02:30:00  10 
7 Wien 2016-05-12 03:00:00  11 
8 Wien 2016-05-12 03:30:00  22 
9 Wien 2016-05-12 04:00:00  4 
10 Wien 2016-05-12 04:30:00  2 
# ... with 4,694 more rows 

Я хотел бы сделать прокатные прогнозы на этот раз серии - оценить модель в первые сутки, а затем предсказать n + 1. Это легко using for-loops, но я подумал, что попробую сделать это аккуратно. Поэтому я хотел бы создать data_frame, который имеет дату окончания в качестве первого столбца и data_frame, который содержит все данные из df вплоть до даты окончания второй, после чего я могу перебрать ее с помощью purrr::map() и друзей. Как создать это вложенное data_frame?

+0

Извините, в чем вопрос/проблема? Может быть, предоставить [воспроизводимый пример?] (Http://stackoverflow.com/questions/5963269) и ожидаемый результат. – zx8754

+0

Как создать это вложенное data_frame? – RoyalTS

+0

Вы можете попробовать использовать 'tibble :: tibble' для создания фрейма данных. Это упрощает создание или добавление столбцов списка, я думаю, что они представляют собой вложенный фрейм данных, который вы ищете. – RobertMc

ответ

1
df <- read.table(text="city   datetime orders 
Wien '2016-05-12 00:00:00'  1 
Wien '2016-05-12 01:00:00'  2 
Wien '2016-05-12 02:00:00'  5 
Wien '2016-05-12 03:00:00'  11 
Wien '2016-05-12 03:30:00'  22 
Wien '2016-05-12 04:00:00'  4 
Wien '2016-05-12 04:30:00'  2",header=T,stringsAsFactors=F) 

df2 <- read.table(text="end 
'2016-05-12 00:30:00' 
'2016-05-12 01:30:00' 
'2016-05-12 02:30:00'",header=T,stringsAsFactors=F) 

df2 <- df2 %>% mutate(df = map(end,~df %>% dplyr::filter(datetime <.x))) 
str(df2) 
# 'data.frame': 3 obs. of 2 variables: 
# $ end: chr "2016-05-12 00:30:00" "2016-05-12 01:30:00" "2016-05-12 02:30:00" 
# $ df :List of 3 
# ..$ :'data.frame': 1 obs. of 3 variables: 
# .. ..$ city : chr "Wien" 
# .. ..$ datetime: chr "2016-05-12 00:00:00" 
# .. ..$ orders : int 1 
# ..$ :'data.frame': 3 obs. of 3 variables: 
# .. ..$ city : chr "Wien" "Wien" "Wien" 
# .. ..$ datetime: chr "2016-05-12 00:00:00" "2016-05-12 00:30:00" "2016-05-12 01:00:00" 
# .. ..$ orders : int 1 4 2 
# ..$ :'data.frame': 5 obs. of 3 variables: 
# .. ..$ city : chr "Wien" "Wien" "Wien" "Wien" ... 
# .. ..$ datetime: chr "2016-05-12 00:00:00" "2016-05-12 00:30:00" "2016-05-12 01:00:00" "2016-05-12 01:30:00" ... 
# .. ..$ orders : int 1 4 2 0 5 

 Смежные вопросы

  • Нет связанных вопросов^_^