Создать временной ряд с интервалом 30 минут
Я пытаюсь создать временной ряд с 30-минутными интервалами. Я использовал следующую команду с выводом также:
ts = seq(as.POSIXct("2009-01-01 00:00"), as.POSIXct("2014-12-31 23:30"),by = "hour")
"2010-02-21 12:00:00 EST" "2010-02-21 13:00:00 EST" "2010-02-21 14:00:00 EST"
Когда я изменяю это на by ="min"
это меняется, чтобы быть каждую минуту.
Как создать временной ряд с каждыми 30-минутными интервалами?
2 ответа
Вы можете указать минуты в by
аргумент, и передать часовой пояс "UTC", как указал Адриан. Проверьте ?seq.POSIXt
для более подробной информации о by
аргумент, указанный как строка символов:
Строка символов, содержащая одно из следующих значений: "sec", "min", "hour", "day", "DSTday", "week", "month", "квартал" или "year". При желании этому может предшествовать (положительное или отрицательное) целое число и пробел, или после него следует "s".
ts <- seq(as.POSIXct("2017-01-01", tz = "UTC"),
as.POSIXct("2017-01-02", tz = "UTC"),
by = "30 min")
head(ts)
Выход
[1] "2017-01-01 00:00:00 UTC"
[2] "2017-01-01 00:30:00 UTC"
[3] "2017-01-01 01:00:00 UTC"
[4] "2017-01-01 01:30:00 UTC"
[5] "2017-01-01 02:00:00 UTC"
[6] "2017-01-01 02:30:00 UTC"
Единицами по умолчанию являются секунды. Так что просто сделайте 1800 секунд, чтобы получить 30 минут.
ts = seq (as.POSIXct ("2009-01-01 00:00"), as.POSIXct ("2014-12-31 23:30"), = 1800)
ts [1:20] [1] "2009-01-01 00:00:00 EST" "2009-01-01 00:30:00 EST" "2009-01-01 01:00:00 EST" "2009 -01-01 01:30:00 EST "" 2009-01-01 02:00:00 EST "[6]" 2009-01-01 02:30:00 EST "" 2009-01-01 03:00: 00 EST "" 2009-01-01 03:30:00 EST "" 2009-01-01 04:00:00 EST "" 2009-01-01 04:30:00 EST "[11]" 2009-01- 01 05:00:00 EST "" 2009-01-01 05:30:00 EST "" 2009-01-01 06:00:00 EST "" 2009-01-01 06:30:00 EST "" 2009- 01-01 07:00:00 EST "[16]" 2009-01-01 07:30:00 EST "" 2009-01-01 08:00:00 EST "" 2009-01-01 08:30:00 EST "" 2009-01-01 09:00:00 EST "" 2009-01-01 09:30:00 EST "