Создать временной ряд с интервалом 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 "

Другие вопросы по тегам