Объединение нескольких временных последовательностей вместе - PullRequest
0 голосов
/ 05 января 2012

Я хочу получить вектор (он в конечном итоге будет индексом объекта зоопарка) объектов POSIXct, охватывающий N отдельных периодов.Т.е. этот код работает для случая N = 2:

from=as.POSIXct( c('2012-01-04 09:00:00','2012-01-04 11:00:00'), tz="UTC")
to=as.POSIXct( c('2012-01-04 09:15:00','2012-01-04 11:10:00'), tz="UTC" )
index=c( seq(from[1],to[1],by=60), seq(from[2],to[2],by=60) )
class(index)    #"POSIXct"

Как сделать этот код универсальным для любого числа периодов времени?Я попытался mapply(), и это стало странным.Мне показалось, что в итоге я получил список числовых типов, а не объектов POSIXct, а затем при различных попытках преобразовать его в POSIXct я иногда получал сообщения об ошибках о необходимости источника.Чтобы еще больше запутать, если два периода имеют одинаковую длину (пример ниже), тогда mapply возвращает матрицу, а не список.Который, во всяком случае, кажется сложнее получить в одном векторе объектов POSIXct.

Может быть, это вопрос о преобразовании возвращаемого типа (типов) mapply;но я также начал чувствовать, что, может быть, мне не хватает более простого способа?

Вот тестовые данные для двух периодов одинаковой длины:

from=as.POSIXct( c('2012-01-04 09:00:00','2012-01-04 11:00:00'), tz="UTC")
to=as.POSIXct( c('2012-01-04 09:15:00','2012-01-04 11:15:00'), tz="UTC" )

1 Ответ

2 голосов
/ 05 января 2012

попробуйте это:

do.call("c", mapply(seq, from, to, by = 60, SIMPLIFY = FALSE))
...