Заполните почасовой набор данных - PullRequest
0 голосов
/ 31 марта 2020

У меня есть набор данных с вектором даты и времени (формат m / d / yh: m), который выглядит следующим образом:

june2018_2$datetime
  [1] "6/1/2018 1:00"   "6/1/2018 2:00"   "6/1/2018 3:00"   "6/1/2018 4:00" 

И у меня есть 61 другая переменная, которые все численно c (с некоторыми уже пропущенными значениями, обозначенными 'NA'). В моем векторе даты и времени отсутствуют некоторые часовые интервалы, и я хочу заполнить вектор даты и времени и заполнить пропущенные места в других 61 переменных с помощью 'NA'. Я пытался использовать то, что уже есть, но я не могу найти какой-то код или функцию, которая работает для того, с чем я специально работаю. Любые советы?

1 Ответ

0 голосов
/ 31 марта 2020

Если ваш datetime не находится в POSIXct, его можно изменить. С complete вы можете заполнять строки по часам. Другие столбцы во фрейме данных будут NA.

library(tidyverse)

df %>%
  mutate(datetime = as.POSIXct(datetime, format = "%m/%d/%Y %H:%M")) %>%
  complete(datetime = seq(from = first(datetime), to = last(datetime), by = "hours"))

Например, если у вас есть тестовые данные:

set.seed(123)

df <- data.frame(
  datetime = c("6/1/2018 1:00",   "6/1/2018 3:00",   "6/1/2018 5:00",   "6/1/2018 9:00"),
  var1 = sample(10,4)
)

Вывод будет:

# A tibble: 9 x 2
  datetime             var1
  <dttm>              <int>
1 2018-06-01 01:00:00     3
2 2018-06-01 02:00:00    NA
3 2018-06-01 03:00:00    10
4 2018-06-01 04:00:00    NA
5 2018-06-01 05:00:00     2
6 2018-06-01 06:00:00    NA
7 2018-06-01 07:00:00    NA
8 2018-06-01 08:00:00    NA
9 2018-06-01 09:00:00     8
...