base (version 3.6.2)

seq.POSIXt: Generate Regular Sequences of Times


The method for seq for date-time classes.


# S3 method for POSIXt
seq(from, to, by, length.out = NULL, along.with = NULL, …)



starting date. Required.


end date. Optional.


increment of the sequence. Optional. See ‘Details’.


integer, optional. Desired length of the sequence.


take the length from the length of this argument.

arguments passed to or from other methods.


A vector of class "POSIXct".


by can be specified in several ways.

  • A number, taken to be in seconds.

  • A object of class difftime

  • A character string, containing one of "sec", "min", "hour", "day", "DSTday", "week", "month", "quarter" or "year". This can optionally be preceded by a (positive or negative) integer and a space, or followed by "s".

The difference between "day" and "DSTday" is that the former ignores changes to/from daylight savings time and the latter takes the same clock time each day. "week" ignores DST (it is a period of 144 hours), but "7 DSTdays" can be used as an alternative. "month" and "year" allow for DST.

The time zone of the result is taken from from: remember that GMT means UTC (and not the time zone of Greenwich, England) and so does not have daylight savings time.

Using "month" first advances the month without changing the day: if this results in an invalid day of the month, it is counted forward into the next month: see the examples.

See Also



Run this code
## first days of years
seq(ISOdate(1910,1,1), ISOdate(1999,1,1), "years")
## by month
seq(ISOdate(2000,1,1), by = "month", length.out = 12)
seq(ISOdate(2000,1,31), by = "month", length.out = 4)
## quarters
seq(ISOdate(1990,1,1), ISOdate(2000,1,1), by = "quarter") # or "3 months"
## days vs DSTdays: use c() to lose the time zone.
seq(c(ISOdate(2000,3,20)), by = "day", length.out = 10)
seq(c(ISOdate(2000,3,20)), by = "DSTday", length.out = 10)
seq(c(ISOdate(2000,3,20)), by = "7 DSTdays", length.out = 4)
# }

Run the code above in your browser using DataCamp Workspace